Apresentação - Classes Abstratas em Java
Click here to load reader
-
Upload
grupo5lp3 -
Category
Technology
-
view
450 -
download
3
Transcript of Apresentação - Classes Abstratas em Java
Classes
Faculdade de Teconologia da UNICAMP
Tecnologia em Análise e Desenvolvimento de Sistemas
Linguagem de Programação III
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
Linguagem de Programação III - Classes Abstratas
Lucas
Classes abstratas são superclasses que servem
apenas de modelo para classes concretas,
portanto não podem ser instanciadas
diretamente.
“Classes abstratas organizam elementos comum
a várias classes.”
James Rumbaugh
Definição
3
Linguagem de Programação III - Classes Abstratas
Lucas
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.
Quando usar?
4
Linguagem de Programação III - Classes Abstratas
Levy
Um exemplo no
mundo real
5
Linguagem de Programação III - Classes Abstratas
Levy
Imagine um animal...
Mas qual animal?
Animal é a nossa classe
abstrata, pois serve de
base para as classes
concretas, Gato e
Cachorro, por exemplo.
O mesmo exemplo utilizando
classes
7
Linguagem de Programação III - Classes Abstratas
Levy
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
Linguagem de Programação III - Classes Abstratas
Jéssica
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
Linguagem de Programação III - Classes Abstratas
Jéssica
Em Java
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:
11
Linguagem de Programação III - Classes Abstratas
Jéssica
Métodos abstratos
public abstract class Animal {
public abstract void FazerSom();
public void Andar() {
System.out.println("Estou andando!");
}
}
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
Linguagem de Programação III - Classes Abstratas
Jéssica
As classes concretas
13
Linguagem de Programação III - Classes Abstratas
Jéssica
As classes concretasAgora sim podemos instanciar um animal
específico:
Gato gato = new Gato();
gato.Andar(); // “Estou andando!”
gato.FazerSom(); // “Miau! Miau!”
Animal cachorro = new Cachorro();
cachorro.Andar(); // “Estou andando!”
cachorro.FazerSom(); // “Au! Au!”
Ou até mesmo:
14
Linguagem de Programação III - Classes Abstratas
Danilo
Aumentando o exemplo
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.
Por que não utilizar herança
comum?
15
Linguagem de Programação III - Classes Abstratas
Danilo
16
Linguagem de Programação III - Classes Abstratas
Danilo
ConclusãoClasse abstrata é um recurso que podemos
utilizar quando queremos compartilhar
funcionalidades em comum entre classes, mas
não queremos permitir que ela seja instanciada
diretamente.
17
Linguagem de Programação III - Classes Abstratas
Danilo
Referências
• http://www.caelum.com.br/apostila-java-
orientacao-objetos/classes-abstratas/
• http://www.inf.pucrs.br/flash/lapro2/aula_heran
ca/
• http://www.javaprogressivo.net/2012/10/Polimo
rfismo--Classes-abstratas-e-Metodos-
abstratos.html
Obrigado!
19
Linguagem de Programação III - Classes Abstratas