Você está na página 1de 1

Programao Orientada a Objetos Aula prtica 01

DECOM

UFOP

2011-1

Prof. Jos Romildo Malaquias

Herana e Polimorsmo
Resumo Nesta aula pretende-se explorar os conceitos de herana e polimorsmo atravs do desenvolvimento de uma pequena aplicao.

Exerccio 1
Os servios de correio expresso internacionais, como FedEx, DHL e UPS, oferecem vrias opes de entrega de pacotes, cada qual com custos especcos. Crie uma hierarquia de herana para representar vrios tipos de pacotes. Utilize Pacote como a classe bsica da hierarquia, e inclua as clases PacoteDoisDias e PacoteNoturno que herdam de Pacote. Dena uma classe Endereco para representar o endereo do remetente ou do destinatrio de um pacote. Um endereo deve ter logradouro (nome da rua, avenida, praa, etc.), nmero, complemento, bairro, cidade, estado e CEP. A superclasse Pacote deve incluir atributos para representar o nome e o endereo tanto do remetente como do destinatrio do pacote, alm de variveis de instncia que armazenam o peso (em quilos) e o custo por quilo para a entrega do pacote. O construtor da classe Pacote deve inicializar esses membros de dados. Assegure que o peso e o custo por quilo contenham valoes positivos. Pacote deve fornecer um mtodo pblico calculaCusto que retorna o custo associado com a entrega do pacote multiplicando o peso e o custo por quilo. A subclasse PacoteDoisDias deve herdar a funcionalidade da classe bsica Pacote, mas deve tambm incluir um atributo que representa uma taxa xa que a empresa de entrega cobra pelo servio de entrega de dois dias. O construtor da classe PacoteDoisDias deve receber um valor para inicializar esse atributo, alm dos demais atributos. PacoteDoisDias deve redenir o mtodo calculaCusto para que ele calcule o custo de entrega adicionando a taxa xa ao custo baseado em peso calculado pelo mtodo calculaCusto da classe Pacote. A classe PacoteNoturno deve herdar diretamente da classe Pacote e conter um atributo adicional para representar uma taxa adicional por quilo cobrado pelo servio de entrega noturno. PacoteNoturno deve redenir o mtodo calculaCusto para que seja acrescenteada a taxa adicional por quilo ao custo-padro por quilo antes de calcular o custo da entrega. Escreva um programa para tratar vrios pacotes, exibindo as informaes de endereo de rementente e destinatrio da maneira que apareceriam nos pacotes dos correios, e o custo de entrega de cada pacote. Calcule e exiba tambm o custo total de entrega de todos os pacotes. O programa deve usar uma estrutura de dados polimrca contendo referncias para objetos que representam pacotes de diferentes tipos. A estrutura de dados deve ser processada em um lao de repetio que visita cada pacote, usando polimorsmo e ligao dinmica.

Você também pode gostar