Exercícios Resolvidos de Polimorfismo

Ver Teoria

Enunciado

Implemente uma classe abstrata de nome F o r m a onde são declarados os métodos virtuais puros f l o a t   c a l c u l a r A r e a e f l o a t   c a l c u l a r P e r i m e t r o .

Passo 1

E aí, galera.

Antes de mais nada, a gente precisa lembrar que um método virtual puro é um tipo de método especial que é vazio. A única utilidade de um método virtual puro é “guardar o lugar” dentro da classe mãe, para que uma classe filha efetue o polimorfismo desse método.

Para criar um método virtual puro é assim:

v i r t u a l   t i p o   n o m e M e t o d o = 0 ;

Usar um método virtual puro é principalmente uma decisão de design e é útil para garantir que todas as classes irmãs tenham certos métodos em comum. Isso é útil para manter a coesão do código.

Outro conceito para lembrar é que uma classe abstrata é uma classe que possui ao menos um método virtual puro. E se a classe abstrata possuir apenas métodos virtuais puros, então ela pode ser chamada de interface.

O que a questão está pedindo de verdade é que a gente construa uma interface que vai servir de base para outras classes no futuro. Como existem dois métodos virtuais puros dentro dessa interface, isso garante que todas as classes derivadas vão ser obrigadas a implementar versões próprias de como calcular uma área e de como calcular o perímetro.

Passo 2

Sem mais delongas, vamos escrever o cabeçalho do nosso código:

E em seguida, vamos criar uma classe chamada F o r m a :

E determinamos o encapsulamento como público:

Agora vamos declarar o método c a l c u l a r A r e a   como virtual puro, assim:

v i r t u a l   f l o a t   c a l c u l a r A r e a   = 0 ;

E depois, vamos declarar o método c a l c u l a r P e r i m e t r o   como virtual puro:

v i r t u a l   f l o a t   c a l c u l a r P e r i m e t r o   = 0 ;

E aí podemos finalizar a classe!

Questão prontinha!

Resposta