• Nenhum resultado encontrado

Programação Orientada a Objetos

N/A
N/A
Protected

Academic year: 2021

Share "Programação Orientada a Objetos"

Copied!
18
0
0

Texto

(1)

Programação Orientada a Objetos

Herança e Polimorfismo

Msc. Paulo de Tarso F. Júnior 1

(2)

2

Revisando

(3)

3

Revisando

(4)

4

Revisando

• Uma classe que herda de outra é um subtipo

– Herança representa relacionamento “é um”

• Carro “é um” veículo

• Livro “é uma” publicação

• Cachorro “é um” mamífero

• Podemos ter uma variável do tipo ClasseA que

referencia um objeto do tipo ClasseB

(5)

5

Revisando

• Operador instanceof

– Determina se um objeto obj é de uma classe Cla

• retorna valor lógico (booleano)

• sintaxe: obj instanceof Cla

(6)

6

Revisando

• Toda classe JAVA tem pelo menos um construtor

• Todo construtor deve chamar o construtor da superclasse

– Deve ser o primeiro comando do construtor

– Compilador coloca código caso o programador não coloque

(7)

7

Construtores

• Acessando Construtores da superclasse:

– Utilizar super();

(8)

8

Sobrescrita

• Podemos redefinir um método na subclasse

– Sobrescrita do método

– Muda comportamento definido na superclasse

(9)

9

Sobrescrita

• É possível chamar o método da superclasse

– Palavra super

• super.metodo();

• Pode ser usado em qualquer método

• Podemos sobrescrever o método para adicionar

funcionalidade, mantendo a funcionalidade existente

class Superclasse{

/* ...*/

public void metodo(int x){

/* ... */

}

/* ... */

}

class Subclasse extends Superclasse{

public void metodo(int x){

/* ... */

super.metodo(10);

/* ... */

} }

(10)

10

Polimorfismo

• Muda comportamento

– Método executado depende da classe do objeto – Mesma chamada executa métodos diferentes

• obj.metodo() vai executar método que foi definido para classe do objeto referenciado por obj

– Permite executar métodos de subclasses mesmo sem conhecê- las

– Usado junto com sobrescrita

(11)

11

Polimorfismo

(12)

12

Classes Abstratas

• Não podem ser instanciadas

– Usadas com herança

• Definir superclasse com características e comportamento comuns e cada subclasse implementa suas especificidades

• Não existem animais da classe mamífero, apenas de suas subclasses

– Palavra abstract antes do nome da classe

public abstract classMamifero{

/* ... */

}

(13)

13

Métodos Abstratos

• Métodos podem ser abstratos

– Não possuem implementação

– Devem ser implementados pelas subclasses

• Ou estas também serão abstratas

– Se uma classe possuir pelo menos um método abstrato, ela deve ser abstrata

– Classes abstratas podem ter métodos implementados

public abstract classMamifero{

public abstract String metodo();

}

Não possui implementação!!!

(14)

14

Classes Finais

• Não podem ser herdadas

– Não possuem subclasses

• Não podem ser abstratas

– Por consequência, não possuem métodos abstratos

• Palavra final antes de class

public final class Gato{

/* ... */

}

(15)

15

Exercício em Sala

• Implementar as classes do seguinte diagrama:

(16)

16

Exercício em Sala

• Detalhes:

– Classe Pessoa e seu método realizarPagamento são abstratos;

– Atributo contatos[] é do tipo String e corresponde a um Array de 3 posições

– Atributo imposto corresponde a uma porcentagem que será diminuída sobre o valorPagamento (10%

para PF e 20% para PJ – Estes valores devem ser inicializados no construtor da classe);

– O método realizarPagamento retorna o valor do

pagamento diminuído da porcentagem do imposto;

(17)

Dúvidas

17 Prof. Paulo de Tarso F. Júnior

(18)

Referências

• RICARTE, I. L. M.; Programação Orientada a Objetos:

Uma Abordagem com Java. UNIVERSIDADE ESTADUAL DE CAMPINAS.

• MARTINS, F. M.; JAVA6 e Programação Orientada pelos Objectos. FCA - Editora de Informática, 2015.

• Os 4 pilares da Programação Orientada a Objetos.

Disponível em: http://www.devmedia.com.br/os-4- pilares-da-programacao-orientada-a-objetos/9264.

Acesso em 15/05/2016

• Programação orientada a objetos com Java. Disponível em:

http://www.devmedia.com.br/programacao-orientada-a-

objetos-com-java-easy-java-magazine-1/18449. Acesso em 18/05/2016

18 Prof. Paulo de Tarso F. Júnior

Referências

Documentos relacionados