• Nenhum resultado encontrado

Programação Orientada a Objetos Aula 6 Classes Abstratas

N/A
N/A
Protected

Academic year: 2022

Share "Programação Orientada a Objetos Aula 6 Classes Abstratas"

Copied!
29
0
0

Texto

(1)

Programação Orientada a Objetos

Aula 6 – Classes Abstratas

FCT/Unesp – Presidente Prudente

Departamento de Matemática e Computação

Prof. Danilo Medeiros Eler danilo.eler@unesp.br

Departamento de Matemática e Computação Faculdade de Ciências e Tecnologia Unesp– Universidade Estadual Paulista

Presidente Prudente/SP, Brasil

(2)

2

Aula anterior: Herança

(3)

3

Classes e Métodos Abstratos

• Uma classe abstrata não pode ser instanciada

– Representa uma classe de objetos e define alguns comportamentos

• Uma classe abstrata não implementa alguns

métodos (ou todos os métodos), servindo como uma base para as subclasses

(4)

4

Classes e Métodos Abstratos

• Uma classe abstrata pode forçar um

comportamento nas subclasses por meio de métodos abstratos

• Um método abstrato indica que a classe não implementa aquele método

– Ele deve ser obrigatoriamente implementado nas subclasses

• Todos os métodos não definidos de uma classe abstrata deverão ser definidos nas subclasses ou estas deverão a ser consideradas abstratas e não poderão ser instanciadas

(5)

5

Classes e Métodos Abstratos

(6)

Classes e Métodos Abstratos

• Para definir que uma classe é abstrata

basta adicionar abstract em sua codificação

6

(7)

Classes e Métodos Abstratos

• Objetos não podem ser instanciados a partir de classes abstratas

7

(8)

Classes e Métodos Abstratos

• Objetos não podem ser instanciados a partir de classes abstratas

8

(9)

Classes e Métodos Abstratos

• Métodos abstratos podem definir comportamentos e deverão ser implementados nas subclasses

– Um método abstrato é aquele que não tem corpo

9

(10)

Classes e Métodos Abstratos

• A subclasse será forçada a implementar esse método ou terá que ser

considerada abstrata

10

(11)

Classes e Métodos Abstratos

• A subclasse será forçada a implementar esse método ou terá que ser

considerada abstrata

11

(12)

Classes e Métodos Abstratos

• A subclasse será forçada a implementar esse método ou terá que ser

considerada abstrata

12

(13)

Classes e Métodos Abstratos

13

(14)

Classes e Métodos Abstratos

14

(15)

Classes e Métodos Abstratos

15

(16)

Classes e Métodos Abstratos

16

(17)

Classes e Métodos Abstratos

17

(18)

Classes e Métodos Abstratos

• Todas as subclasses terão que implementar o método exibir

18

(19)

Classes e Métodos Abstratos

• Todas as subclasses terão que implementar o método exibir

19

(20)

Classes e Métodos Abstratos

• Todas as subclasses terão que implementar o método exibir

20

(21)

21

Classes e Métodos Abstratos

(22)

22

Classes e Métodos Abstratos

public abstract class Conta{

protected String cliente;

protected double saldo;

public Conta(){ saldo = 0 };

public Conta(String cliente, double saldo){

this.cliente = cliente;

this.saldo = saldo;

}

public void depositar(double valor){

saldo = saldo + valor;

}

public abstract void sacar();

public abstract void relatorio();

}

Métodos abstratos que deverão ser

implementados pelas subclasses

(23)

23

Classes e Métodos Abstratos

public ContaComum extends Conta{

public ContaComum(){

super();

}

public ContaComum(String cliente, double saldo){

super(cliente, saldo);

}

} A classe ContaComum não é abstrata e, portanto, deve implementar os métodos

abstratos definidos na classe Conta

(24)

24

Classes e Métodos Abstratos

public ContaComum extends Conta{

public ContaComum(){

super();

}

public ContaComum(String cliente, double saldo){

super(cliente, saldo);

}

@Override

public void sacar(double valor){

...

}

@Override

public void relatorio(){

...

} }

Métodos que devem ser obrigatoriamente

implementados pela subclasse

ContaComum

(25)

25

Classes e Métodos Abstratos

public ContaEspecial extends Conta{

protected double limite;

public ContaEspecial(){

super();

limite = 0;

}

public ContaEspecial(String cliente, double saldo, double limite){

super(cliente, saldo);

this.limite = limite }

@Override

public void sacar(double valor){

...

}

@Override

public void relatorio(){

...

} }

Métodos que devem ser obrigatoriamente implementados pela

subclasse ContaEspecial

(26)

Classes e Métodos Abstratos

• Exemplo prático

26

(27)

27

Referências

Capítulo 9

(28)

28

Links

http://www.dca.fee.unicamp.br/cursos/PooJava/

Aulas/poojava.pdf

http://www.di.ubi.pt/~pprata/poo_10_11.htm

https://sites.google.com/site/fpaulovich/Home/Te aching/scc-604-programacao-orientada-a-

objetos

(29)

Programação Orientada a Objetos

Aula 6 – Classes Abstratas

FCT/Unesp – Presidente Prudente

Departamento de Matemática e Computação

Prof. Danilo Medeiros Eler danilo.eler@unesp.br

Departamento de Matemática e Computação Faculdade de Ciências e Tecnologia Unesp– Universidade Estadual Paulista

Presidente Prudente/SP, Brasil

Referências

Documentos relacionados

O representante da Prefeitura Municipal de Coronel Vivida, especialmente designado para acompanhar e fiscalizar a execução deste contrato, efetuará medições mensais a partir

• Diversas classes, sem nenhum relacionamento, podem se relacionar com uma mesma interface, assim como uma classe pode implementar mais de uma

(4) Uma classe só pode herdar campos e métodos de uma única classe, mas pode implementar métodos e empregar constantes de diferentes interfaces. Desse modo através de interfaces

Nas noventa estâncias elencadas na Relação de 1858, em Santa Maria, lugar de uma pecuária pobre (pequeno número de cabeças de gado por estabelecimento),

Sem nunca perder de vista as dificuldades his- tóricas salientadas por Scruton, Zakaria responde à questão através da apologia do liberalismo constitucional (não confundir com

método abstrato: não sabemos exatamente como um robô irá implementar seus movimentos..

2006], tornando-as genéricas (abstratas) para que possam ser utilizadas (quando instanciadas) em documentos de requisitos orientados a aspectos, qualquer que seja

Entendendo a centralidade das lutas em favor dos camponeses que se recriam nas contradições da lógica do capital, seja na luta para se reproduzirem enquanto classe