Apresentação - Classes Abstratas em Java
-
Upload
grupo5lp3 -
Category
Technology
-
view
89 -
download
5
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
Abstrat
as
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 concretas
Agora 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ã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.
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