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?

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!!