SóProvas


ID
5435920
Banca
Instituto Consulplan
Órgão
Prefeitura de Colômbia - SP
Ano
2021
Provas
Disciplina
Programação
Assuntos

Sobre a linguagem JAVA, analise as afirmativas a seguir.

I. O polimorfismo permite-lhe tratar as generalidades e deixar que o ambiente de tempo de execução trate as especificidades.
II. O polimorfismo promove a extensibilidade: o software que invoca o comportamento polimórfico é independente dos tipos de objeto para os quais as mensagens são enviadas.
III. O compilador Java permite a atribuição de uma referência de superclasse a uma variável de subclasse se a referência da superclasse for convertida explicitamente para o tipo da subclasse.

Está(ão) correta(s) apenas a(s) afirmativa(s)

Alternativas
Comentários
  • Gabarito: D

  • No caso da II, é coerente com o polimorfismo do tipo Dinâmico. Porém, no Polimorfismo do tipo Estático, os tipos de objetos são sim importantes (assinaturas diferentes)

  • I - OK. No polimorfismo clássico (dinâmico), é feito uma ligação dinâmica em tempo de execução para determinar qual método será executado

    II - OK. Imagina que você tem as classes: Pai, FilhoA, FilhoB. Você pode invocar um método da classe Pai "independente dos tipos de objeto para os quais as mensagens são enviadas". Você não precisa saber se foi enviado para o objeto FilhoA ou FilhoB

    III - Eu até marquei errado; porém, analisando percebi que essa alternativa está correta. Se eu fizer o cast explícito, o compilador irá permitir essa atribuição sim. O erro só acontecerá em tempo de execução, vai dar um ClassCastException, eu testei