Baixe o app para aproveitar ainda mais
Prévia do material em texto
UNESP/FEG/DMA Programação de Computadores II - Prof. Senne Aula 4 - Exercícios Turma 1. O que é hierarquia de classes? Qual é a vantagem de construir hierarquias de classe? 2. Por que métodos herdados da superclasse são redefinidos nas subclasses? 3. O que é polimorfismo? Como o polimorfismo se relaciona com hierarquia de classes? Haveria polimorfismo se não houvesse hierarquia de classes? Considere a seguinte hierarquia de classes: Veiculo − double km − double preco + Veiculo() + Veiculo(double k, double p) + double getPreco() + void mostrar() Carro Trator − int nPortas − double cargaMax + Carro() + Carro(double k, double p, int n) + double getPreco() + Trator() + Trator(double k, double p, double c) + double getPreco() Para implementar as classes desta hierarquia, considerar os seguintes pontos: – Os construtores devem atribuir o valor dos parâmetros (default = 0) aos respectivos campos. – O método getPreco() da classe Veiculo deve retornar o valor do campo preco, se o valor do campo km for menor que 50000. Caso contrário, deve retornar 90% do valor do campo preco. – O método getPreco() da classe Carro deve retornar o valor retornado pelo método getPreco() da superclasse, mas acrescido de 15% se o valor do campo nPortas for maior do que 2. – O método getPreco() da classe Trator deve retornar o valor retornado pelo método getPreco() da superclasse, mas acrescido de 10% se o valor do campo cargaMax for maior do que 1000. – O método mostrar() deve imprimir o nome da classe e o valor retornado por getPreco(). 4. Codificar as classes Veiculo, Carro e Trator. 5. Codificar uma classe executável para testar os recursos das 3 classes da hierarquia.
Compartilhar