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

Questão 6 - Herança

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.

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; }

  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.