quinta-feira, 29 de julho de 2010

Questão 4 - Object Casting

class Putter {
  public static void main(String[] args) {
  Bango b1 = new Bango();
  Bango b2 = new Bongo();
  Bango b3 = new Bingo();

  \\insert code
  }
}


cass Bango { }
cass Bongo extends Bango { }
cass Bingo extends Bongo { }


Qual dos código a seguir, se substituirmos ao \\insert code, não irá compilar o código?
   A. Bongo b4 = b2;
   B. Bongo b5 = (Bongo) b2;
   C. Bango b6 = b3;
   D. Bango b7 = (Bango) b3;
   E. Bingo b8 = b3;
   F. Bingo b9 = (Bingo) b3;
   G. Bango b10 = (Bongo) b3;




Analisando uma a uma: (A) b2 é um Bango, logo, para poder atribuir a Bongo, precisa de um Casting (Bongo), como é feito na opção (B). A opção (C) b6 e b3 são do tipo Bango, na (D) é feito o Casting, já na (E) acontece o mesmo que na (A), ou seja, b8 é um Bingo e b3 um Bango, necessitando de um casting. (F) está sendo um casting correto e na (G) é feito um casting do Bongo, que é um Bango.

Nenhum comentário:

Postar um comentário