Cursos / Eletrônica / Programação Orientada a Objetos / Aula

arrow_back Aula 13 - Atributos e Métodos Estáticos, Classes Abstratas e Interfaces

Classes Abstratas

Ao longo dos nossos estudos sobre a programação orientada a objetos em Java, vimos os conceitos e vários exemplos de implementações de classes e objetos. Você viu que as classes são como “moldes” que geram os objetos segundo a sua definição.

Todas as classes vistas até agora são o que chamamos de classes concretas, pois são utilizadas para gerar objetos diretamente. Ou, ainda, estão “prontas” para serem usadas para gerar seus objetos, como formas de bolo ou biscoitos prontas para receberem a massa e darem objetos quentinhos! Mas, existem classes das quais não é possível gerar (instanciar) objetos, são as chamadas classes abstratas.

Primeiro, vejamos o que é uma classe abstrata.

Saiba Mais!

Classe abstrata é aquela declarada como tal, através da palavra reservada abstract, e que pode definir pelo menos um método abstrato.

A Listagem 4 apresenta um exemplo de uma classe abstrata, chamada FiguraAbstrata. Uma figura abstrata representa uma figura qualquer, por isso não sabe como ser desenhada e, de fato, não pode ser instanciada, pois ela define um método abstrato (desenha) para se autodesenhar, que ainda está indefinido.

No nosso exemplo, a classe FiguraAbstrata indica que métodos as figuras derivadas dela (subclasses ou classes filha da mesma) devem realizar ou implementar. Esses métodos são os chamados métodos abstratos. Uma classe abstrata não pode instanciar objetos, porém, pode ser derivada por outras classes que, por sua vez, deverão implementar seus métodos ou declarar-se também abstratas.

Listagem 4 - Classe abstrata FiguraAbstrata

A Listagem 5 apresenta a classe derivada Quadrado (subclasse) da classe FiguraAbstrata.

A classe Quadrado realiza o que precisa para ser desenhada, implementando o método desenha(). É possível criar instâncias (objetos) da classe Quadrado, porque ela não é abstrata nem é declarada como tal, e também define uma implementação concreta para o método desenha().

Listagem 5 - Classe Quadrado

A importância das classes abstratas dá-se principalmente em tempo de projeto do sistema, cria um nível a mais de abstração e torna o projeto mais reutilizável.

Para você saber mais...

A seguir, você verá algumas sugestões de artigos da web sobre classes abstratas:

Versão 5.3 - Todos os Direitos reservados