Polimorfismo de Inclusão

Polimorfismo de inclusão usa a capacidade de substituição da herançasms_failed, de uma classe mãe por qualquer classe descendente, para permitir um comportamento polimórfico nos métodos que usam a classe mãe.

No exemplo visto na seção anterior, veja a classe Principal na Listagem 8, onde criamos um objeto do tipo Carro e outro do tipo ControleRemoto, nós utilizamos o comportamento polimórfico do polimorfismo de inclusão. Fizemos isso quando substituímos a classe Brinquedo (mãe) pela classe Carro (filha) dentro da classe ControleRemoto.

Assim, o atributo interno do tipo Brinquedo da classe ControleRemoto pode receber qualquer objeto que seja de uma classe filha de Brinquedo. Para entender melhor o que aconteceu, veja a Figura 7.

Hierarquia da classe Brinquedo e da classe Controle Remoto

Observe que a classe ControleRemoto está relacionada com a classe Brinquedo, pois possui um atributo do tipo Brinquedo. Mas, como as classes Carro, Avião e Barco são descendentes de Brinquedo, elas podem substituir a classe Brinquedo em qualquer método que a utilize.

Nesse caso, isso foi feito explicitamente, através da passagem de um objeto da classe Carro para o método construtor de ControleRemoto na Listagem 8.

Caso o programador deseje mudar o controle remoto para interagir com algum outro tipo de brinquedo, bastaria passar um objeto da classe Avião ou Barco na chamada ao construtor da classe ControleRemoto. A capacidade do objeto (brinq) do tipo Brinquedo da classe ControleRemoto de receber qualquer um objeto de subclasses da classe Brinquedo é que caracteriza o polimorfismo de inclusão.

Versão 5.3 - Todos os Direitos reservados