Apresentação - Classes Abstratas em Java

732 visualizações

Publicada em

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
732
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
26
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Apresentação - Classes Abstratas em Java

  1. 1. Classes Abstratas Linguagem de Programação III Faculdade de Teconologia da UNICAMP Tecnologia em Análise e Desenvolvimento de Sistemas
  2. 2. Linguagem de Programação III - Classes Abstratas Agenda • • • • • • • • • • 2 Definição Quando usar? Um exemplo no mundo real O mesmo exemplo utilizando classes Em Java Métodos abstratos As classes concretas Aumentando o exemplo Por que não utilizar herança comum? Conclusão Lucas
  3. 3. Linguagem de Programação III - Classes Abstratas Definição “Classes abstratas organizam elementos comum a várias classes.” James Rumbaugh Classes abstratas são superclasses que servem apenas de modelo para classes concretas, portanto não podem ser instanciadas diretamente. 3 Lucas
  4. 4. Linguagem de Programação III - Classes Abstratas Quando usar? Usamos classes abstratas para representar grupos que tem características em comum, mas que diferem em detalhes específicos. A classe abstrata implementa somente as características gerais e seus métodos abstratos são implementados nas subclasses com suas peculiaridades. 4 Levy
  5. 5. Linguagem de Programação III - Classes Abstratas Um exemplo no mundo real 5 Levy
  6. 6. Imagine um animal... Mas qual animal?
  7. 7. Linguagem de Programação III - Classes Abstratas O mesmo exemplo utilizando classes Animal é a nossa classe abstrata, pois serve de base para as classes concretas, Gato e Cachorro, por exemplo. 7 Levy
  8. 8. Em Java
  9. 9. Linguagem de Programação III - Classes Abstratas Em Java Utilizamos a palavra-chave abstract para declarar uma classe abstrata: public abstract class Animal { public void Andar() { System.out.println("Estou andando!"); } } 9 Jéssica
  10. 10. Linguagem de Programação III - Classes Abstratas Em Java Então já posso instanciar a minha classe abstrata assim? Animal animal = new Animal(); Não! Você não pode instanciar uma classe abstrata! 10 Jéssica
  11. 11. Linguagem de Programação III - Classes Abstratas Métodos abstratos Podemos definir um método como abstrato, isso quer dizer que ele deverá ser implementado nas classes concretas. Em Java, para declarar um método como abstrato também utilizamos a palavra-chave abstract: public abstract class Animal { public abstract void FazerSom(); public void Andar() { System.out.println("Estou andando!"); } } 11 Jéssica
  12. 12. Linguagem de Programação III - Classes Abstratas As classes concretas public class Gato extends Animal { public void FazerSom() { System.out.println("Miau! miau!"); } } public class Cachorro extends Animal { public void FazerSom() { System.out.println("Au! Au!"); } } 12 Jéssica
  13. 13. Linguagem de Programação III - Classes Abstratas As classes concretas Agora sim podemos instanciar um animal específico: Gato gato = new Gato(); gato.Andar(); // “Estou andando!” gato.FazerSom(); // “Miau! Miau!” Ou até mesmo: Animal cachorro = new Cachorro(); cachorro.Andar(); // “Estou andando!” cachorro.FazerSom(); // “Au! Au!” 13 Jéssica
  14. 14. Linguagem de Programação III - Classes Abstratas Aumentando o exemplo 14 Danilo
  15. 15. Linguagem de Programação III - Classes Abstratas Por que não utilizar herança comum? A única diferença é que não podemos instanciar a classe abstrata, e se tratando de conceitos abstratos, dá mais consistência ao sistema. A decisão de transformar ou não uma classe em abstrata depende do seu domínio. 15 Danilo
  16. 16. Linguagem de Programação III - Classes Abstratas Conclusão Classe abstrata é um recurso que podemos utilizar quando queremos compartilhar funcionalidades em comum entre classes, mas não queremos permitir que ela seja instanciada diretamente. 16 Danilo
  17. 17. Linguagem de Programação III - Classes Abstratas Referências • http://www.caelum.com.br/apostila-javaorientacao-objetos/classes-abstratas/ • http://www.inf.pucrs.br/flash/lapro2/aula_heran ca/ • http://www.javaprogressivo.net/2012/10/Polimo rfismo--Classes-abstratas-e-Metodosabstratos.html 17 Danilo
  18. 18. Dúvidas? Ou mande um e-mail com sua dúvida para: g5.classes.abstratas@gmail.com
  19. 19. Linguagem de Programação III - Classes Abstratas Obrigado! 19

×