Porque é possível fazer esse casting Cliente outroCliente = (Cliente)obj; Contudo não é possível fazer Diretor alves = new Funcionario()
Porque é possível fazer esse casting Cliente outroCliente = (Cliente)obj; Contudo não é possível fazer Diretor alves = new Funcionario()
Olá Isabela, tudo bom?
Na expressão Diretor alves = new Funcionario()
a classe Funcionario é uma classe abstrata, da qual não conseguimos gerar instâncias.
Para mais referências sobre classes abstratas: https://docs.microsoft.com/pt-br/dotnet/csharp/language-reference/keywords/abstract
Espero ter ajudado.