30.06.2013 Views

Apostila Java

Apostila Java

Apostila Java

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Classes abstratas e interfaces<br />

Uma das contribuições maiores da Orientação a Objetos foi a estratificação funcional<br />

da mão de obra envolvida no desenvolvimento de um programa de computador. Hoje<br />

em dia os programadores não mais concebem e implementam seus códigos a partir de<br />

sua livre intuição - são orientados por sofisticados mecanismos de análise e modelagem<br />

de sistemas que freqüentemente geram esboços (esqueletos) de programas. Esses códigos<br />

incompletos representam a visão abstrata do sistema e dependendo do padrão de projeto<br />

utilizado podem ser fortemente baseados em interfaces.<br />

Classes abstratas e concretas<br />

Quando descrevemos uma hierarquia de classes, nem todas as classes são previstas de serem<br />

instanciadas. Por exemplo, observe a hierarquia de classes das figuras geométricas (vide a 2ª lista de<br />

exercícios):<br />

ABSTRATA<br />

CONCRETA<br />

Retangulo<br />

Quadrado<br />

Note que, apesar de Geometria ser uma classe, não faz muito sentido imaginar um "objeto geometria".<br />

No mundo real, sempre identificamos uma forma geométrica através de uma subclasse de Geometria:<br />

um quadrado, um triângulo, etc. Por isso dizemos que a classe Geometria é abstrata. De fato, o mais<br />

correto é dizer superclasse abstrata, pois a existência de objetos dessa classe sempre dependerá da<br />

implementação de alguma subclasse (concreta).<br />

Uma superclasse abstrata possui as seguintes características:<br />

Geometria<br />

Circulo<br />

12<br />

Triangulo<br />

Equilatero<br />

?? Não pode ser instanciada, mesmo que possua construtor (algumas linguagens, como <strong>Java</strong>,<br />

permitem a implementação de construtores em classes abstratas, mas não faz sentido, pois<br />

esses construtores não serão acessíveis).

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!