Mas sabe aquela voz que te diz: "Isso é gambiaaaarra"
Então.. sei lá
tinorberto
ola, use o instaof mesmo…
SuperClassea=newA();SuperClasseb=newB();if(ainstanceofA)System.out.print("Instancia de A");
Bem assim acho q fica bem simples…flw
Almeidaah
cafezin
É, o enum não é legal, alguns mais entendidos te diriam que “não fica elegante”…
Vai de instanceof mesmo.
E aproveita e cria um getInstance nessas suas subclasses(se vc for usar efetivamente).
:lol:
pmlm
E porque é que tens de saber qual é o tipo da subclasse?
tinorberto
usar enum é gambiarra para isso…
cafezin
pmlm:
cafezin:
Qual a melhor maneira de eu descobrir qual tipo de objeto que estou trabalhando, sabendo que ele foi herdado de uma superclasse?
E porque é que tens de saber qual é o tipo da subclasse?
// chamando o mesmo método com parâmetros diferentesvoidmetodo(a);voidmetodo(b);voidmetodo(c);...metodo(SuperClassesuperClasse){superClasse.// pq aqui posso usar os métodos que cada uma tem(que não são em comum).}
pmlm
Podes dar um exemplo concreto?
P
paty_trind
faz assim
if(objeto instanceof A)
{
...
}
talvez não seja a melhor maneira mas é eficaz e é a que eu conheço
instanceOf ? Em seguida fazer ifs e aplicar casts para cada caso?
Ou existe algo mais interessante?
pmlm
cafezin:
instanceOf ? Em seguida fazer ifs e aplicar casts para cada caso?
Ou existe algo mais interessante?
Se deres um exemplo concreto pode haver algo mais interessante.
O que querias dizer atrás com os métodos não serem comuns?
classA{voidfazAlgo(){System.out.println("classe A a fazer algo");}}classBextendsA{voidfazAlgo(){System.out.println("classe B a fazer algo diferente");}}classCextendsA{voidfazAlgo(){System.out.println("classe C faz também diferente");}}....voidmetodo(a);voidmetodo(b);voidmetodo(c);...metodo(SuperClassesuperClasse){superClasse.fazAlgo();//vaichamarosmetodosrespectivosdassublasses}
cafezin
Entendi. É isso mesmo.
no caso o fazAlgo() poderia ser abstrato também né, na SuperClasse.
pmlm
Sim, o método tem de existir na superclasse, ou como abstrato ou com lógica, consoante a situação.