Questao simulado scjp 1.5

2 respostas
C
class FWD {
  int doMud(int x) { return 1; }
 }
 class Subaru extends FWD {
   int doMud(int... y) { return 2; }
 int doMud(long z) { return 3; }
 } 
 class Race {
   public static void main(String [] args) {
     FWD f = new Subaru();
     System.out.println(f.doMud(7));
   }
 }

Alguem pode me dizer pq a resposta é 1 e nao 7??

f nao é um objeto do tipo Subaru e nao iria recorrer a um metodo doMud dessa classe?
assim chamaria um long que tem preferencia sobre um varargs

2 Respostas

Luiz-SP

o método chamado tem a assinatura int doMud(int x), esse método é o doMud de FWD…


f nao é um objeto do tipo Subaru e nao iria recorrer a um metodo doMud dessa classe?

Não, f é FWD, f é uma referência a um objeto Subaru, mas pense bem se vc fosse usar um f como Subaru provavelmente vc teria de fazer um cast…

Luiz-SP

LuizClaudio:
o método chamado tem a assinatura int doMud(int x), esse método é o doMud de FWD…


f nao é um objeto do tipo Subaru e nao iria recorrer a um metodo doMud dessa classe?

Não, f é do tipo FWD, ma é tb uma referência a um objeto Subaru, pense bem se vc fosse usar um f como Subaru provavelmente vc teria de fazer um cast…

Criado 29 de setembro de 2007
Ultima resposta 29 de set. de 2007
Respostas 2
Participantes 2