Exercícios Resolvidos de Polimorfismo

Ver Teoria

Enunciado

O que é um método virtual? Qual a diferença entre uma classe concreta, classe abstrata e interface.

Passo 1

Um método virtual é um método que foi pensado desde o começo para sofrer polimorfismo. Para criar um método virtual basta utilizar a palavra-chave v i r t u a l no momento de declarar o método. Usando métodos virtuais nós facilitamos a leitura do código, e facilita o uso de ponteiros com classes derivadas.

Um método virtual funciona como um método comum, recebe parâmetros, efetua operações e pode retornar um resultado.

Porém, é possível criar métodos virtuais completamente vazios. Esses são os métodos virtuais puros. Os métodos virtuais puros não efetuam nenhuma atividade, e servem simplesmente para “guardar espaço” numa classe mãe. Esse método deve obrigatoriamente sofrer polimorfismo.

Uma classe que possui ao menos um método virtual puro é chamada de classe abstrata. Classes abstratas não podem gerar objetos. Se todos os métodos de um classe forem virtuais puros, então é chamado de interface. As classes abstratas e interfaces são desde o começo pensadas para funcionar como classes bases para gerar classes filhas que serão utilizáveis.

Caso uma classe não possua nenhum método virtual puro, então ela é chamada de classe concreta. Essas são as classes que podem ser utilizadas diretamente gerando novos objetos.

Resposta

Ei, a resposta está no passo a passo :)