class Alpha { int over = 1; }
class Beta extends Alpha { int over = 2; }
class Gamma extends Beta {
int over = 3;
public stativ void main(String[] args) {
new Gamma().go();
}
void go() {
Beta b = new Gamma();
Alpha a = new Gamma();
System.out.println(super.over + " " b.over + " " + a.over);
}
}
Qual o resultado?
A. 2 2 1
B. 3 2 1
C. 2 3 3
D. 3 3 3
E. Não compila
Segue a dica, sempre usar como referência o tipo e não a instância. Super, refere-se a classe pai, neste caso, Beta é super de Gamma. b é do tipo Beta e a é do tipo Alpha, assim o resultado certo é Beta, Beta e Alpha (2 2 1), letra A.
Eu e mais alguns colegas de trabalho iniciamos um grupo de estudo para a certificação SCJP. Postaremos aqui todas questões estudadas, suas respectivas respostas e nossos comentários sobre elas. Espero que seja tão útil para quem lê, quanto é para nós...
Mostrando postagens com marcador Herança. Mostrar todas as postagens
Mostrando postagens com marcador Herança. Mostrar todas as postagens
segunda-feira, 2 de agosto de 2010
quarta-feira, 28 de julho de 2010
Questão 1 - Herança e Encapsulamento
Temos:
Class Zing { Hmpf h; }
Class Woop extends Zing{}
Class Hmpf {Zing z; }
Class Woop extends Zing{}
Class Hmpf {Zing z; }
Quais estão corretas?
A. Woop é um Hmpf e é um Zing
B. Zing é um Woop and tem um Hmpf
C. Hmpf tem um Woop e Woop tem um Zing
D. Woop tem um Hmpf e Woop tem um Zing
E. Zing tem um Hmpf e Woop é um Zing
F. Hmpf tem um Zing e Woop tem um Hmp
Pode-se concluir com o código acima que Zing tem um Hmpf, Woop é um Zing, logo também tem um Hmpf, e Hmpf tem um Zing. Com base neste raciocínio, as únicas respostas que estão corretas seria a opção E e F.
Marcadores:
Encapsulamento,
Herança
Assinar:
Postagens (Atom)