1 / 20

Classes Abstratas

Classes Abstratas. P. O. O. Prof. Ângela e Grace. Classe Abstrata. Classes demasiadamente gerais para criar objetos reais. Utilizadas como superclasses para subclasses concretas Declara atributos e comportamentos comuns das várias classes em uma hierarquia.

psyche
Télécharger la présentation

Classes Abstratas

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Classes Abstratas P. O. O. Prof. Ângela e Grace

  2. Classe Abstrata • Classes demasiadamente gerais para criar objetos reais. • Utilizadas como superclasses para subclasses concretas • Declara atributos e comportamentos comuns das várias classes em uma hierarquia. • Em geral, uma classe abstrata contém um ou maismétodos abstratos • Atributos e métodos concretos de uma classe abstrata estão sujeitos às regras normais da herança.

  3. Palavra-chave abstract • Utilizada para declarar uma classe abstrata. • Utilizada para declarar um método abstrato: • Classes abstratas contêm um ou mais métodos abstratos. • Todas as subclasses concretas devem sobrescrever todos os métodos abstratos herdados. • Tentar instanciar um objeto de uma classe abstrata é um erro de compilação.

  4. Formas geométricas Formas geométricas área( ) área = π x r2 área = (b x h)/2 área = b x h

  5. Classe Abstrata: Forma Geométrica • Atributos básicos • Número de lados • Métodos • Set/ get número de lados: métodos não abstratos • Área: método abstrato • Imprime(): método não abstrato • Precisa construtor?

  6. Atributo protected Método concreto Classe FormaGeometrica

  7. Classe Circulo public class Circulo extends FormaGeometrica{ private double raio; // atributo especifico do circulo public void setRaio (double raio) { if (raio<0) this.raio = 0; else this.raio = raio; } public Circulo (double raio) // construtor { setRaio(raio); } } Compila?

  8. Classe concreta X superclasse abstrata • Classes abstratas contêm um ou mais métodos abstratos. No caso da forma geométrica: método area(). • Todas as subclasses concretas devem sobrescrever todos os métodos abstratos herdados. No caso do círculo, devemos sobrescrever o método area().

  9. Usa classe Math Implementa Area( ) Classe Circulo com Método Area( )

  10. Classe TesteFormas public class TesteFormas{ public static void main (String args[]) { FormaGeometrica f = new FormaGeometrica();f.imprime(); Circulo c = new Circulo(5);c.imprime(); } } Funciona?

  11. Alterações • Classes abstratas não podem ser instanciadas. • Corrigir código do teste • O que o método imprime(), quando invocado a partir de um objeto circulo deve imprimir na tela? • Como imprimir raio junto ao número de lados? • Altero em Circulo ou FormaGeometrica? • Redefinir método imprime( ) na classe circulo!

  12. sobrescreve imprime( ) Classe Circulo - Método imprime( )

  13. Mais alterações... • Como imprimir área da forma geométrica instanciada? No caso, a área do circulo... • Altero na classe Círculo? • Ou na FormaGeometrica? • Redefinir método imprime( ) incluindo área.

  14. Alterando a superclasse

  15. Exemplo 02 – Subclasse Retangulo • Atributos básicos • Base • Altura • Métodos • Sets/ Gets • Construtor (base, altura) • area() • imprime()

  16. Classe Retangulo

  17. Classe Retangulo (cont.)

  18. Teste Formas

  19. Atividade 31 • Codifique a classe Triângulo • Crie uma classe de teste com as 3 formas geométricas: Circulo, Retangulo e Triangulo.

  20. Próximas Aulas • 16/05: Lista de Exercícios • 23/05: Prova 2 • 30/05: Interface e Componentes GUI • 06/06: Interface e Componentes GUI • 13/06: Substitutiva

More Related