Exercícios Resolvidos de Polimorfismo

Ver Teoria

Enunciado

Observe a classe V e t o r 2 D abaixo. Use herança e polimorfismo para criar a classe V e t o r 3 D

A classe acima utiliza o cabeçalho < c m a t h >

Passo 1

Vamos nessa, pessoal.

A questão já foi bacana com a gente e entregou a classe mãe prontinha! Então tudo que temos que fazer é criar a classe filha.

A classe mãe representar um vetor de duas dimensões, e já possui as coordenadas x e y e o método para calcular o módulo desse vetor.

Para criar uma classe para vetores de três dimensões a gente pode herdar a classe V e t o r 2 D e ganhamos sem esforço algum os atributos x e y , e a gente só vai precisar adicionar o atributo z .

Já o método m o d u l o terá de sofrer polimorfismo. Afinal de contas, na classe mãe tanto a mensagem exibida quanto o cálculo só funcionam para vetores de duas dimensões. Então vamos usar polimorfismo para substituir esse método para uma versão tridimensional.

Mas primeiro, vamos escrever o cabeçalho da questão, que vai precisar incluir o < c m a t h >

E também já vamos copiar o código da classe mãe pra dentro do nosso código:

Passo 2

Certo. Vamos agora desenvolver a nossa classe.

Primeiro, vamos declarar a classe V e t o r 3 D que herda a classe V e t o r 2 D . Lembre-se para criar uma classe com herança é assim:

c l a s s   N o m e F i l h a   : p u b l i c   N o m e M a e

Beleza! Agora nós temos os atributos x e y e o método m o d u l o ( ) a nossa disposição. O próximo passo é adicionar o atributo z :

Show! Agora, a gente tem que lembrar que o método m o d u l o ( ) não é adequado para vetores de três dimensões. Então vamos executar polimorfismo para adaptar o método.

Para executar polimorfismo não tem segredo. É só a gente escrever um novo método com nome m o d u l o ( ) dentro da nossa classe filha!

Então, dentro de V e t o r 3 d vamos escrever a classe m o d u l o ( ) . Nesse método “polimorfado” a gente vai imprimir uma mensagem utilizando os três atributos x , y e z . E em seguida, vamos escrever uma equação que calcule o módulo de um vetor tridimensional.

m o d u l o 3 D = x 2 + y 2 + z 2

E prontinho! A classe filha e o polimorfismos estão feitos.

Passo 3

Agora é só a gente testar pra ver se deu tudo certo:

Pra testar, é só a gente criar um objeto de cada classe.

Vamos preencher os atributos do vetor bidimensional e executar o método módulo:

E fazer a mesma coisa com o vetor 3D:

E prontinho! Rodando o código vemos que deu tudo certo:

Resposta