Apresentação - Classes Abstratas em Java

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

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

Abstrat

as

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

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ã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.

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