Apresentação - Classes Abstratas em Java

19

Click here to load reader

Transcript of Apresentação - Classes Abstratas em Java

Page 1: 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

Page 2: Apresentação - Classes Abstratas em Java

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

Page 3: Apresentação - Classes Abstratas em Java

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

Page 4: Apresentação - Classes Abstratas em Java

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

Page 5: Apresentação - Classes Abstratas em Java

Um exemplo no

mundo real

5

Linguagem de Programação III - Classes Abstratas

Levy

Page 6: Apresentação - Classes Abstratas em Java

Imagine um animal...

Mas qual animal?

Page 7: Apresentação - Classes Abstratas em Java

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

Page 8: Apresentação - Classes Abstratas em Java

Em Java

Page 9: Apresentação - 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

Linguagem de Programação III - Classes Abstratas

Jéssica

Em Java

Page 10: Apresentação - 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

Linguagem de Programação III - Classes Abstratas

Jéssica

Em Java

Page 11: Apresentação - Classes Abstratas 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!");

}

}

Page 12: Apresentação - Classes Abstratas em Java

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

Page 13: Apresentação - Classes Abstratas em Java

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:

Page 14: Apresentação - Classes Abstratas em Java

14

Linguagem de Programação III - Classes Abstratas

Danilo

Aumentando o exemplo

Page 15: Apresentação - Classes Abstratas em Java

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

Page 16: Apresentação - Classes Abstratas em Java

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.

Page 17: Apresentação - Classes Abstratas em Java

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

Page 18: Apresentação - Classes Abstratas em Java

Dúvidas?

Ou mande um e-mail com sua dúvida para:

[email protected]

Page 19: Apresentação - Classes Abstratas em Java

Obrigado!

19

Linguagem de Programação III - Classes Abstratas