Acredito que não vai compilar, pelo fato que na chamada do método quale, não será possível distinguir qual é o método correto a ser executado, ou seja, uma instância de BizNeto pode tanto se encaixar no método quale(Avo a) quanto no quale(BizNeto b), e acredito que o Java é bem espertinho para cetectar isto.
D
diogoaclPJ
Das duas uma:
1: Isso não é herança multipla não?
2: Senão for, Fico com opção que resultará a a frase “E ai, BizNeto2!”, pois o ultimo nó, ou herança de classe extendida foi a BizNeto2.
B
BrainnPJ
Não é erança multipla!
Herança multipla seria assim: class BizNeto extends Neto, Pai{}
mais isso não existe em java!
me corrijam se estiver errado!
D
diogoaclPJ
Hummm isso em diagrama UML não seria mais ou menos assim
Vendo este lindo diagrama UML, hehehe, percebo que não vc só está tendo herança de dois nós da mesma classe!
Valeu Brainn
F
FelipePJ
nao compila pq ta mandando a constante null para um metodo sobrecarregado, se fosse uma variavel (mesmo q estivesse atribuida com null), ai sim funcionaria…
M
matheusPJ
testei esse código e ele imprimiu “E ai, BizNeto2!” no output! agora, o pq eu nao sei! 8O
D
dokPJ
Resolvi testar este código, mas não compilou.
M
matheusPJ
bah q doidera, alguem explica por favor qual é o resultado disso ai? :roll:
B
BrainnPJ
matheus, seguinte!
o porque e pra que eu não sei explicar! Só sei que ele vai chamar quem estiver num nivel mais baixo da hierarquia! E mais, se tiver dois elementos no mesmo nivel a referencia null fica ambigua!
Alguem pode explicar porque ou pra que isso acontece!
ou pelo menos dar uma sugestão!
C
carisioPJ
É isso mesmo, ele sempre procura o método mais especializado na hierarquia.