Ocorreu uma situação em que não foi possível extender a classe Funcionário para os Tercerizados em virtude dos métodos da Classe herdada não fazerem sentido !
Não poderíamos utilizar uma camada a mais de Abstração ?
Exemplo:
abstract Pessoa ( atributos: nome, cpf)
abstract Funcionario extend Pessoa ( atributos: cargo, salario, dataUltimoReajuste )
class FuncionarioEmpresa extend Funcionario ( metodos { } )
class FuncionarioTercerizado extend Funcionario ( atributo: empresa )
A composição torna o relacionamento das classes 1x1, se um funcionário assumir 2 cargos em uma empresa a composição iria gerar duplicidade ao meu entender.
Essa solução é viável ? Se não for, quais seriam os problemas ?