Tenho a classe A e a subclasse B que extends a classe A. Após criar um objeto x que representa a classe B e outro y que reprenta a classe A quero fazer com que a superclasse do objeto x seja a A. Existe alguma forma de se fazer isso?
Mas wendell, a classe A jah eh a superclasse de B…
Vc quer q uma instancia específica seja a superclasse de determinado objeto?
Não sei se eh isso, mas acho q vc poderia usar composição pra isso…
Daria pra esclarecer um pouco mais sua dúvida?
aborges
Nao endendi… Pq vc quer isso?
danieldestro
Com super voc}e faz referência a um outro objeto, mas sim às características (atributos e métodos) da classe pai.
Isso serve para acessar métodos que foram sobrescritos ou sobrecarregados.
W
wendell_almeida_silv
Diogenes:
Mas wendell, a classe A jah eh a superclasse de B…
Vc quer q uma instancia específica seja a superclasse de determinado objeto?
Não sei se eh isso, mas acho q vc poderia usar composição pra isso…
Daria pra esclarecer um pouco mais sua dúvida?
Sim, eu quero uma q uma instância específica seja a superclasse. Como funciona a composição?
Na verdade eu crio o objeto da Classe A e carrego o seus atributos. Após isso tenho a necessidade de ter um objeto da classe B com os mesmos valores carregados anteriormente no objeto A. Como eu não posso converter A em B, tenho que usar os métodos para carregar os valores novamente em B. Em vez de ficar usando os métodos para copiar os valores de A para B eu queria aproveitar a mesma instância do objeto A.
danieldestro
Você já se deu conta que os objetos de B podem receber os mesmo valores que os de A?
Mas parece que você quer ter um objeto do tipo A e depois tratá-lo como do tipo B. Para isso você terá mesmo que usar composição e delegação de métodos.
A a = new A();
a.setAa( "um valor" );
B b = new B( a );
System.out.println( b.getAa() );
W
wendell_almeida_silv
danieldestro:
Mas parece que você quer ter um objeto do tipo A e depois tratá-lo como do tipo B. Para isso você terá mesmo que usar composição e delegação de métodos.
Podemos dizer q eu quero q um objeto seja filho de um pai, mas posteriormente seja adotado por outro.
Imagine q eu tenha 20 atributos na superclasse. O trabalho seria enorme.
Na forma proposta de composição o reaproveitamento dos métodos da superclasse não ocorre, pois tenho q sobresceve-los.
danieldestro
Cara, não existe isso que você quer fazer, joga rum objeto para o super de outro.
A única forma de se fazer isso é com composição e delegação de métodos. O Eclipse gera os métodos delegate para você.
TedLoprao
E se só a delegação não resolver seus problemas, lembre-se que existe o BeanUtils da jakarta, ok !
Fallow
kuchma
Esse conceito na verdade nao existe. Voce nao tem objetos “filhos” de outros objetos e vice-versa. O que voce tem sao CLASSES filhas de outras e vice-versa.
A unica relacao entre um objeto de uma superclasse e um objeto de uma subclasse dela eh que ambos sao instancias de classes que estao na mesma hierarquia. Nao quer dizer que um tenha alguma relacao com o outro.
O que voce talvez queira seja copiar as propriedades de um objeto para um objeto de sua superclasse, certo? Crie um processozinho que faca isso via reflexao ou use o BeanUtils do Jakarta, conforme ja indicaram.