Classe abstrata

Disponível somente no TrabalhosFeitos
  • Páginas : 4 (998 palavras )
  • Download(s) : 0
  • Publicado : 3 de abril de 2013
Ler documento completo
Amostra do texto
Classes Abstratas
O conceito de generalização na POO(Programação Orientada a Objetos) significa que um objeto encapsula comportamentos e estados para uma categoria de objetos.
Para ilustrar vamospensar em algumas figuras geométricas conforme mostra a figura abaixo:
|
O objeto genérico neste exemplo é figura geométrica que iremos definir como uma classe abstrata.
Muitas formas geométricaspossuem área, perímetro e cor.
O conceito de especificação na POO significa que um objeto pode herdar o comportamento e o estado comum de um objeto genérico, porém cada objeto precisa definirseu próprio estado e comportamento.
No exemplo cada forma geométrica tem sua fórmula particular para calcular a área e o perímetro.
A herança permite a reutilização de código.
Para o exemplo como sabemosque todas as formas possuem cor deveríamos definir um atributo cor em cada forma. Correto ?
Não. Incorreto.
Seria melhor criar uma classe com um atributo cor e fazer com que as demaisformas especializadas herdassem esse atributo cor.
Neste caso podemos definir um classe base Forma como uma classe abstrata e uma classe derivada para cada forma especifica que desejamos tratar.
Na vida real nósnunca calculamos a área e o perímetro de uma figura geométrica; para fazer isso você precisa saber qual o tipo de figura geométrica (quadrado, triângulo, círculo, etc.) para implementar o cálculo usandoa fórmula apropriada.
Para calcular a área podemos definir métodos abstratos na classe abstrata e dessa forma obrigar as classes que herdam da classe abstrata a implementar esses métodos. Com issoteremos certeza de que esses métodos foram implementados.
Definindo então os métodos CalcularArea() e CalcularPerimetro() como abstratos e assim estamos forçando as classes que derivam da classebase Forma, que também é abstrata, a definir o comportamento dos métodos implementando-os.
Agora que eu apresentei o cenário vamos definir os conceitos relacionados a classes abstratas e métodos...
tracking img