SlideShare ist ein Scribd-Unternehmen logo
1 von 19
Classes

Abstrat
as

Linguagem de Programação III

Faculdade de Teconologia da UNICAMP
Tecnologia em Análise e Desenvolvimento de
Sistemas
Linguagem de Programação III - Classes Abstratas

Agenda
•
•
•
•
•
•
•
•
•

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

2

Lucas
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
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
Linguagem de Programação III - Classes Abstratas

Um exemplo no

mundo real

5

Levy
Imagine um
animal...

Mas qual
animal?
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
Em Java
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
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
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 palavrachave abstract:
public abstract class Animal {
public abstract void FazerSom();
public void Andar() {
System.out.println("Estou andando!");
}
}
11

Jéssica
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
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
Linguagem de Programação III - Classes Abstratas

Aumentando o exemplo

14

Danilo
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
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
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
Dúvidas
?

Ou mande um e-mail com sua dúvida
para:
g5.classes.abstratas@gmail.com
Linguagem de Programação III - Classes Abstratas

Obrigado!

19

Weitere ähnliche Inhalte

Andere mochten auch

Evolución de la computadora
Evolución de la computadoraEvolución de la computadora
Evolución de la computadoraDianaLJP
 
Drew Blumenthal 🐳🐎🐏🐊 (@preppydrew) • Instagram photos and videos
Drew Blumenthal 🐳🐎🐏🐊 (@preppydrew) • Instagram photos and videosDrew Blumenthal 🐳🐎🐏🐊 (@preppydrew) • Instagram photos and videos
Drew Blumenthal 🐳🐎🐏🐊 (@preppydrew) • Instagram photos and videosDrew Blumenthal
 
Task 1
Task 1Task 1
Task 1fingu
 
On Some Continuous and Irresolute Maps In Ideal Topological Spaces
On Some Continuous and Irresolute Maps In Ideal Topological SpacesOn Some Continuous and Irresolute Maps In Ideal Topological Spaces
On Some Continuous and Irresolute Maps In Ideal Topological Spacesiosrjce
 
Third party monitoring
Third party monitoringThird party monitoring
Third party monitoringbpm_729
 
Sitio web 10 -4
Sitio web 10 -4Sitio web 10 -4
Sitio web 10 -4milena9618
 
task 2
task 2task 2
task 2fingu
 
Sistema de ecuaciones lineales
Sistema de ecuaciones linealesSistema de ecuaciones lineales
Sistema de ecuaciones linealesarbizama
 

Andere mochten auch (13)

Evolución de la computadora
Evolución de la computadoraEvolución de la computadora
Evolución de la computadora
 
Virus ebola
Virus ebolaVirus ebola
Virus ebola
 
Virus ebola
Virus ebolaVirus ebola
Virus ebola
 
Drew Blumenthal 🐳🐎🐏🐊 (@preppydrew) • Instagram photos and videos
Drew Blumenthal 🐳🐎🐏🐊 (@preppydrew) • Instagram photos and videosDrew Blumenthal 🐳🐎🐏🐊 (@preppydrew) • Instagram photos and videos
Drew Blumenthal 🐳🐎🐏🐊 (@preppydrew) • Instagram photos and videos
 
Task 1
Task 1Task 1
Task 1
 
On Some Continuous and Irresolute Maps In Ideal Topological Spaces
On Some Continuous and Irresolute Maps In Ideal Topological SpacesOn Some Continuous and Irresolute Maps In Ideal Topological Spaces
On Some Continuous and Irresolute Maps In Ideal Topological Spaces
 
Trabajo final de fep
Trabajo final de fepTrabajo final de fep
Trabajo final de fep
 
Third party monitoring
Third party monitoringThird party monitoring
Third party monitoring
 
Dw8 sdg us
Dw8 sdg usDw8 sdg us
Dw8 sdg us
 
Sitio web 10 -4
Sitio web 10 -4Sitio web 10 -4
Sitio web 10 -4
 
task 2
task 2task 2
task 2
 
Sistema de ecuaciones lineales
Sistema de ecuaciones linealesSistema de ecuaciones lineales
Sistema de ecuaciones lineales
 
Spat i
Spat iSpat i
Spat i
 

Ähnlich wie Classes Abstratas em Java

Polimorfismo em java
Polimorfismo em javaPolimorfismo em java
Polimorfismo em javaManoel Afonso
 
Curso java 05 - herança, classes e métodos abstratos
Curso java   05 - herança, classes e métodos abstratosCurso java   05 - herança, classes e métodos abstratos
Curso java 05 - herança, classes e métodos abstratosMaurício Linhares
 
Aprendendo C# do zero
Aprendendo C# do zeroAprendendo C# do zero
Aprendendo C# do zeroManawydan
 
Curso de Java (Parte 1)
Curso de Java (Parte 1)Curso de Java (Parte 1)
Curso de Java (Parte 1)Mario Sergio
 
Orientação a Objetos para Desenvolvedores Android
Orientação a Objetos para Desenvolvedores AndroidOrientação a Objetos para Desenvolvedores Android
Orientação a Objetos para Desenvolvedores AndroidIury Teixeira
 
http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/Rodrigo Vieira
 
Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetosCleyton Ferrari
 
Poo slides01
Poo slides01Poo slides01
Poo slides01jmtofoli
 
Strategy - Padrões de Projeto
Strategy - Padrões de ProjetoStrategy - Padrões de Projeto
Strategy - Padrões de ProjetoEduardo Mendes
 
Java 10 Classes Abstratas Interfaces
Java 10 Classes Abstratas InterfacesJava 10 Classes Abstratas Interfaces
Java 10 Classes Abstratas InterfacesRegis Magalhães
 
Java: Classes Abstratas, Anônimas, Interface
Java: Classes Abstratas, Anônimas, InterfaceJava: Classes Abstratas, Anônimas, Interface
Java: Classes Abstratas, Anônimas, InterfaceArthur Emanuel
 
03 - Orientação a objetos e classes em C# v1.0
03 - Orientação a objetos e classes em C# v1.003 - Orientação a objetos e classes em C# v1.0
03 - Orientação a objetos e classes em C# v1.0César Augusto Pessôa
 
Minicurso de Lógica e Linguagem Java 6.0
Minicurso de Lógica e Linguagem Java 6.0Minicurso de Lógica e Linguagem Java 6.0
Minicurso de Lógica e Linguagem Java 6.0Thiago Dieb
 

Ähnlich wie Classes Abstratas em Java (20)

Polimorfismo em java
Polimorfismo em javaPolimorfismo em java
Polimorfismo em java
 
Java11
Java11Java11
Java11
 
Poo (1)
Poo (1)Poo (1)
Poo (1)
 
Java7
Java7Java7
Java7
 
Curso java 05 - herança, classes e métodos abstratos
Curso java   05 - herança, classes e métodos abstratosCurso java   05 - herança, classes e métodos abstratos
Curso java 05 - herança, classes e métodos abstratos
 
Aprendendo C# do zero
Aprendendo C# do zeroAprendendo C# do zero
Aprendendo C# do zero
 
Curso de Java (Parte 1)
Curso de Java (Parte 1)Curso de Java (Parte 1)
Curso de Java (Parte 1)
 
Fj pratica04
Fj pratica04Fj pratica04
Fj pratica04
 
Orientação a Objetos para Desenvolvedores Android
Orientação a Objetos para Desenvolvedores AndroidOrientação a Objetos para Desenvolvedores Android
Orientação a Objetos para Desenvolvedores Android
 
http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/
 
Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetos
 
Poo slides01
Poo slides01Poo slides01
Poo slides01
 
Herança.pptx
Herança.pptxHerança.pptx
Herança.pptx
 
Strategy - Padrões de Projeto
Strategy - Padrões de ProjetoStrategy - Padrões de Projeto
Strategy - Padrões de Projeto
 
Java 10 Classes Abstratas Interfaces
Java 10 Classes Abstratas InterfacesJava 10 Classes Abstratas Interfaces
Java 10 Classes Abstratas Interfaces
 
Java: Classes Abstratas, Anônimas, Interface
Java: Classes Abstratas, Anônimas, InterfaceJava: Classes Abstratas, Anônimas, Interface
Java: Classes Abstratas, Anônimas, Interface
 
03 - Orientação a objetos e classes em C# v1.0
03 - Orientação a objetos e classes em C# v1.003 - Orientação a objetos e classes em C# v1.0
03 - Orientação a objetos e classes em C# v1.0
 
Minicurso de Lógica e Linguagem Java 6.0
Minicurso de Lógica e Linguagem Java 6.0Minicurso de Lógica e Linguagem Java 6.0
Minicurso de Lógica e Linguagem Java 6.0
 
Aula orientação a objetos
Aula orientação a objetosAula orientação a objetos
Aula orientação a objetos
 
Curso ruby on rails
Curso ruby on railsCurso ruby on rails
Curso ruby on rails
 

Classes Abstratas em Java

  • 1. Classes Abstrat as Linguagem de Programação III Faculdade de Teconologia da UNICAMP Tecnologia em Análise e Desenvolvimento de Sistemas
  • 2. Linguagem de Programação III - Classes Abstratas Agenda • • • • • • • • • 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 2 Lucas
  • 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. 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. Linguagem de Programação III - Classes Abstratas Um exemplo no mundo real 5 Levy
  • 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
  • 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. 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. 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 palavrachave abstract: public abstract class Animal { public abstract void FazerSom(); public void Andar() { System.out.println("Estou andando!"); } } 11 Jéssica
  • 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. 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. Linguagem de Programação III - Classes Abstratas Aumentando o exemplo 14 Danilo
  • 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. 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. 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. Dúvidas ? Ou mande um e-mail com sua dúvida para: g5.classes.abstratas@gmail.com
  • 19. Linguagem de Programação III - Classes Abstratas Obrigado! 19