Você está na página 1de 2

Universidade Federal do Pará

Instituto de Ciências Exatas e Naturais


Programação II - 2019.4

Lista de Exercícios 6 - Herança Polimorfismo e Sobrecarga de Método

Matrícula:
Aluno:

01. Desenvolva uma a classe chamada Imovel, a qual possuirá como atributos um endereço e
um preço. Em seguida, crie uma classe Novo, a qual herda Imovel e possui um adicional no
preço, crie os métodos de acesso e impressão deste valor adicional. Após, crie uma classe
Velho, que herda Imovel e possui um desconto no preço, crie os métodos de acesso e impressão
para este desconto. Na classe principal, o programa deverá pedir ao usuário que digite 1 para
Imóvel novo e 2 para Imóvel velho. Conforme a definição do usuário, o programa deverá
imprimir o endereço e valor final do imóvel.

02. Crie uma interface para representar qualquer forma geométrica, definindo métodos para
cálculo do perímetro e área de figuras geométricas; em seguida, crie uma classe abstrata para
representar quadriláteros, em que o construtor receba os tamanhos dos quatros lados e
implemente o método de cálculo do perímetro; desenvolva uma classe que represente os
retângulos, recebendo o tamanho da base e da altura no construtor; desenvolva uma classe que
represente os quadrados, que deve receber apenas o tamanho do lado; desenvolva uma classe
para representar um círculo, cujo seu construtor deverá receber o tamanho do raio. O programa
principal deverá perguntar ao usuário quantas formas ele deseja criar. Em seguida, para cada
forma, perguntar qual tipo de forma desejada (quadrado, retângulos ou círculo), solicitando os
dados necessários para criar a forma, todas as formas deverão ser armazenadas em um vetor.
Ao final, o programa deverá apresentar: os valores informados pelo usuário (lados ou raio); os
perímetros e áreas de cada forma. Para o perímetro e área utilize do polimorfismo.

03. Crie uma hierarquia de classes de domínio para uma loja que venda livros, CDs e DVDs.
Sobrescreva o método toString() para que imprima:
• Para livros: nome, preço e autor;
• Para CDs: nome, preço e número de faixas;
• Para DVDs: nome, preço e duração.
Evite ao máximo repetição de código utilizando a palavra super no construtor e no método
sobrescrito. Em seguida, crie uma classe Loja com o método main() que adicione 5 produtos
diferentes (a sua escolha) a um vetor e, por fim, imprima o conteúdo do vetor

04. Implemente a classe abstrata Veiculo, a qual possui os métodos abstratos


listarVerificacoes(), ajustar(), limpar() e mudarOleo(). Em seguida, implemente as subclasses
Bicicleta e Automóvel, as quais herdam de Veiculo e implementam os métodos herdados. Como
classe principal, desenvolva a classe Oficina, a qual terá dois métodos: proximo() que deverá
retornar aleatoriamente um objeto do tipo bicicleta ou automóvel, manutencao(Veiculo v) que
recebe como parâmetro um objeto do tipo veiculo e chama os métodos definidos na classe
veiculo (listarVerificacoes(), ajustar(), limpar()), se o veículo for Automóvel deve também
chamar o método mudarOleo().
05. Seguindo o diagrama a seguir, faça:

a) Implemente a classe Equipamento aplicando o polimorfismo de sobrecarga.


b) Implemente as subclasses aplicando o polimorfismo de sobrescrita. Dica: o método toString
pode aproveitar códigos do método getDescricao.
c) Em seguida, escreva um método main em uma classe chamada TestaEquipamento que cria
diferentes objetos do tipo Equipamento fazendo chamadas para seus diferentes métodos.

Você também pode gostar