Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Type Cast - Referência Específica-

Na aula "Array do tipo Object" o prefessor falou sobre "type cast", e eu fiquei com a seguinte dúvida: Assumindo a relação de herança, posso usar o type cast para referenciar um objeto mais genérico com uma referência mais específica? Ou seria justamente o contrário, só posso usar o type cast para referenciar objetos mais especícos com referências mais genéricas?

2 respostas
solução!

Oie Irene, tudo bem contigo?

De maneira geral é impossível criar um objeto com sua referência sendo a classe filha, não funcionaria nem mesmo se tentássemos usar o cast, veja abaixo:

    Filho pai = new Pai(); // não compila
    Filho pai = (Filho) new Pai(); // não compila

Então respondendo sua pergunta, você não consegue usar um tipo específico para referenciar um objeto mais genérico, mesmo se você tentar usar o cast ainda não vai funcionar, acontecendo o seguinte erro: Pai cannot be cast to Filho.

Espero ter conseguido ajudar!

Se restar qualquer dúvida estarei por aqui :)

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.Bons Estudos!

Valeu Igor!

Acho que me confundi por conta do exemplo: uma "referência pai" recebe um "objeto filho" depois a "referência pai" é atribuída a uma nova "referência filho" usando o cast, e nesse caso sim funcionaria.

    `Conta[] contas = new Conta[5];

    ContaPoupanca cc = new ContaPoupanca(22, 22);

    contas[0] = cc;    

    ContaPoupanca ref = (ContaPoupanca) contas[0];`

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software