Considere um sistema desenvolvido com base nos princípios da
Orientação a Objetos. O sistema possui uma classe base abstrata
Funcionario e duas classes derivadas: Gerente e Vendedor.
A classe Funcionario define um método calcularSalario() que é implementado de forma diferente em Gerente (com bônus de gestão) e Vendedor (com comissão de vendas). A capacidade de utilizar uma referência do tipo Funcionario para chamar o método calcularSalario() e ter a versão correta do método (Gerente ou Vendedor) sendo executada em tempo de execução, é uma característica fundamental do seguinte conceito da Orientação a Objetos:
A classe Funcionario define um método calcularSalario() que é implementado de forma diferente em Gerente (com bônus de gestão) e Vendedor (com comissão de vendas). A capacidade de utilizar uma referência do tipo Funcionario para chamar o método calcularSalario() e ter a versão correta do método (Gerente ou Vendedor) sendo executada em tempo de execução, é uma característica fundamental do seguinte conceito da Orientação a Objetos: