SóProvas


ID
2337166
Banca
INSTITUTO AOCP
Órgão
EBSERH
Ano
2017
Provas
Disciplina
Programação
Assuntos

Ao desenvolver um sistema utilizando a linguagem JAVA, alguns conceitos fazem parte da programação, como encapsulamento, herança e polimorfismo. Sendo que, no polimorfismo, temos o conceito de cast implícito. Assinale a alternativa que apresenta o comando que usa cast implícito.

Alternativas
Comentários
  • Eu marquei a B (correta) porque achei mais clara. Mas alguém pode explicar porque a D está errada? Para mim, é sim um exemplo de cast implícito de int para double...

  • Tipos de casting

     

    Implícito, conhecido como upcasting, quando transformamos uma variável com valor/referência de tipo mais específico em uma  variável de tipo menos específico, ou seja, estamos subindo na nossa hierarquia, esse tipo de cast é realizado automaticamente.

    Supondo que a classe cachorro extenda a classe Animal

     

    Cachorro toto = new Cachorro();

    Animal toto2 = toto;

     

    Explícito, conhecido como downcasting, quando transformamos uma variável com valor/referência de tipo menos específico em uma variável de tipo mais específico, ou seja, estamos descendo na nossa hierarquia, esse tipo de cast é realizado manualmente.

    Supondo que a classe cachorro extenda a classe Animal

     

    Animal toto2 = new Cachorro();

    Cachorro toto = (Cachorro) toto2;

     

  • Entendo que a D não é correta pois se trata de tipo básico e não objeto.

  • @Alisson, Letra D = conversão, Letra B = casting (implícito)

    São conceitos diferentes porque a conversão de tipo primitivo pode haver perda e ser irreversível, por exemplo: se converter um float para int, as casas decimais serão perdidas para sempre

    Já no casting não, posso fazer casting de Filho para Pai e depois fazer o cast inverso sem perder nada, pois é só uma referência, o objeto em si fica inalterado