Exercícios Resolvidos de Polimorfismo

Ver Teoria

Enunciado

Observe a classe interface F o r m a

Crie, uma classe de nome R e t a n g u l o cujas instâncias são caracterizadas pelos atributos l a d o e a l t u r a ambos do tipo f l o a t . Implemente na classe R e t a n g u l o os métodos herdados e outros que ache necessários.

Passo 1

Lets go, galerinha!

A primeira coisa que você tem que notar é que todos os métodos de F o r m a são virtuais puros. E isso é importante pois todos os métodos virtuais puros precisam sofrer polimorfismo. Para identificar um método virtual puro, olhe se ele tem a palavra chave v i r t u a l e se termina com “ = 0 ” .

A classe que vamos criar é a R e t a n g u l o que precisa de dois atributos l a d o e a l t u r a . O ideal é que esses atributos sejam privados, então vamos precisar também de um construtor para inicializar os atributos e de um par de getters para podermos visualizar os atributos.

Mas antes de tudo, vamos começar escrevendo a interface dentro do nosso código:

Passo 2

Belezinha, partimos agora pro desenvolvimento da classe filha, lembre-se que pra executar uma 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

Então criamos a classe R e t a n g u l o que herda a classe F o r m a

Os atributos l a d o e a l t u r a devem ser de acesso restrito, então vamos declarar os atributos com encapsulamento privado:

Em seguida, vamos criar um método construtor para iniciar os atributos. Os métodos construtores devem ser públicos.

Por questão de gosto pessoal, o nome dos parâmetros do método construtor vai ser igual ao dos atributos. Para evitar ambiguidades, vou usar o t h i s - > para indicar quais são as variáveis que representam os atributos da classe, e os que não tem essa indicação são os parâmetros inseridos pelo usuário.

Depois vamos criar métodos getters para os atributos:

O próximo passo é executar o polimorfismo

Passo 3

Ainda dentro da classe, vamos dar atenção aos detalhes da herança.

Foram herdados dois métodos virtuais puros. Esse tipo de método deve sempre sofrer polimorfismo!

Então vamos começar pelo método c a l c u l a r A r e a . Para aplicar o polimorfismo é só declarar um método utilizando este mesmo nome! O uso do v i r t u a l não é necessário. Depois, dentro do método, é só a gente calcular a área do retângulo e retornar o resultado

a r e a r e t a n g u l o = l a d o × a l t u r a

E depois vamos efetuar o polimorfismo no método c a l c u l a r P e r i m e t r o . Novamente, para executar um polimorfismo é só a gente escrever um novo método utilizando o mesmo nome c a l c u l a r P e r i m e t r o .

p e r i m e t r o r e t a n g u l o = 2 × ( l a d o + a l t u r a )

E a classe está prontinha!

Passo 4

Agora é só a gente testar. Vamos criar um objeto da classe retângulo e vamos imprimir o resultado da área e do perímetro:

Resposta