Considere uma classe Veículo
com
duas classes derivadas, Automóvel
e
Bicicleta
:
Essas classes têm três métodos, definidos para veículos de forma geral e redefinidos mais especificamente para automóveis e bicicletas:
A aplicação Oficina
define um objeto que recebe
objetos da classe Veículo. Para cada veículo recebido, a oficina
executa na seqüência os três métodos da classe Veículo. No entanto,
não há como saber no momento da programação se a Oficina estará
recebendo um automóvel ou uma bicicleta -- assim, o momento de decisão
sobre qual método será aplicado só ocorrerá durante a execução do
programa.
Este trecho de código ilustra a utilização da classe Oficina, considerando que os métodos acima foram definidos para Veículo e para todas as suas classes derivadas. Um possível resultado da interpretação dessa aplicação é:
Veiculo Bicicleta Bicicleta.checkList Bicicleta.adjust Bicicleta.cleanup Veiculo Bicicleta Bicicleta.checkList Bicicleta.adjust Bicicleta.cleanup Veiculo Automovel Automovel.checkList Automovel.adjust Automovel.cleanup Veiculo Automovel Automovel.checkList Automovel.adjust Automovel.cleanup
Alguns pontos a destacar com relação a esse exemplo:
© Ivan Luiz Marques Ricarte
DCA/FEEC/UNICAMP