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

Instanciar Classe Abstrata

O Vinícius cita que não é possível instanciar uma classe abstrata, gostaria de entender melhor o por quê disso? Ademais o que me deixou confuso também foi que nesse exercício, onde há o seguinte código:

public function adicionaBonificacaoDe (??? $funcionario)
{
    // ...
}

// ...
$gerente = new Gerente(...);
$controladorBonificacoes->adicionaBonificacaoDe($gerente);

As alternativas indicam que pode-se substituir o "???" pela classe abstrata Funcionário. Apesar desse código não instanciar a classe funcionário, ele utiliza um objeto dessa classe, por que isso é possível?

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
2 respostas
solução!

Opa, Lucas. O ponto é justamente o nome do capítulo: Polimorfismo.

Uma classe abstrata não está completa. Ela é um molde para que outras classes finalizem as definições. Já como tipo de parâmetro, nós podemos receber uma instância de qualquer classe que herde de funcionário, entende?

Ah, ok. Agora ficou mais claro, muito obrigado!!