Mais outra questão

10 respostas
B
class Avo{}

class Filho extends Avo{}

class Neto extends Filho{}

class BizNeto extends Neto{}

class BizNeto2 extends Neto{}
class questao1{

public static void main(String argumentos[]){

quale(null);

}

static void quale(Avo a){System.out.println(E ai, vovo!);}

static void quale(Filho f){System.out.println(E ai, filho!);;}

static void quale(Neto n){System.out.println(E ai, neto!);}

static void quale(BizNeto b){System.out.println(E ai, BizNeto2!);}

}

compila? executa? imprime algo? o que imprime?

10 Respostas

D

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

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

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

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

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

testei esse código e ele imprimiu “E ai, BizNeto2!” no output! agora, o pq eu nao sei! 8O

D

Resolvi testar este código, mas não compilou.

M

bah q doidera, alguem explica por favor qual é o resultado disso ai? :roll:

B

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

É isso mesmo, ele sempre procura o método mais especializado na hierarquia.

Criado 4 de novembro de 2004
Ultima resposta 7 de nov. de 2004
Respostas 10
Participantes 6