Está en la página 1de 19

CENTRO UNIVERSITRIO DE JOO PESSOA

COORDENAO DE SISTEMAS DE INFORMAO

Polimorsmo
Jefferson Ferreira Barbosa
jeffersonjpa@gmail.com

Joo Pessoa
2014

At aqui...
Fundamentos da Linguagem Java
Princpios da Orientao a Objetos
Denies da Linguagem
Construtores, Encapsulamento e
Sobrecarga
Herana
Hoje: Polimorsmo

Polimorsmo

Polimorsmo

O que polimorsmo?
O p o l i f o r m i s m o d e r i v a d a p a l a v r a
Polimorphos, que signica mulMforme (Poli =
muitas, morphos = formas).
Ento, para uma linguagem de programao,
isso signica que pode haver vrias formas de
fazer uma "certa coisa.

Polimorsmo

Mas que certas coisas


so estas?
Chamadas de mtodos

Polimorsmo

Denio
Polimorsmo a habilidade dos objetos de
classes diferentes responderem a mesma
mensagem de diferentes maneiras.
Ou seja, uma chamada de mtodo pode ser
executada de vrias formas (ou
polimorcamente).

Polimorsmo

Denio
E quem dene a forma?
O objeto que recebe a chamada
Por exemplo:
Se um objeto A chama o mtodo exe() de um
objeto B, ento o objeto B decide a forma de
implementao do mtodo.
Mais especicamente,

o Mpo do objeto B que

determinar.
Polimorsmo

Exemplo
Um dono de uma fbrica de brinquedos solicitou que
seus engenheiros criassem um mesmo controle
remoto para todos os brinquedos de sua fbrica. A
nica restrio era que cada brinquedo atendesse
aos comandos especcos denidos pelo controle. O
controle remoto teria vrios botes, sendo que
todos eles seriam teis para todos os brinquedos.
Assim, quando o usurio clicasse no boto mover,o
controle enviaria o sinal MOVER para todos os
brinquedos que esMvessem no raio de dois metros.
Polimorsmo

Exemplo
Representao:

Polimorsmo

Exemplo

mover();

mover();

Polimorsmo

mover();

10

Exemplo

Polimorsmo

11

Classicao
Polimorsmo de Sobrecarga
Ocorre quando os mtodos com o mesmo nome,
na mesma classe, possuem comportamentos
diferentes, tendo diferentes parmetros.
Exemplo:

Polimorsmo

12

Classicao
Polimorsmo de Sobreposio
a redenio de mtodos denidos nas
superclasses por classes descendentes.
Pessoa
- salario
- rg
- nome

Herana por extenso


e Polimorsmo por
sobreposio

+getSalario()
Funcionario

Professor
+getSalario
Polimorsmo

13

Classicao

Sobreposio

Polimorsmo

14

Voltando ao exemplo...
Dado o exemplo do brinquedo, a nica
restrio para um controle remoto to versMl
seria que quando criado o controle remoto,
ele receber o Mpo de brinquedo que ir
acionar.
Mas como fazer isso?

Polimorsmo

15

Chamada Polimrca

Polimorsmo

16

Recapitulando...
Dena comportamentos com Mpos abstratos e
use-os no polimorsmo.
Dena implementaes com classes e use
superclasses para fatorar implementaes
comuns.

Polimorsmo

17

Exerccio 1
Vamos criar as classes ControleRemoto,
Brinquedo, Avio, Carro e Navio conforme o
exemplo apresentado.
Implementar o mtodo mover para cada uma
das classes criadas acima com exeo de
ControleRemoto.
Implementar o mtodo ao da classe
ControleRemoto.
Polimorsmo

18

Exerccio 2
Dena no pacote br.unipe.spi.banco, a classe abstrata ContaAbstrata
que tem os mesmos atributos e mtodos de Conta, s que o mtodo
debitar abstrato
Altere a classe Conta para herdar da classe ContaAbstrata e implementar
o mtodo debitar
Modique a classe Banco para que seja possvel trabalhar com todos os
Mpos de conta da aplicao bancria. Execute a classe Programa e crie um
teste para a classe Conta
Dena a classe br.unipe.spi.banco.ContaImposto que herda de
ContaAbstrata e tem uma constante CPMF que armazena o imposto a ser
cobrado quando um valor for debitado na ContaImposto
necessrio alterar as classes Poupanca e ContaEspecial ?
Altere a classe Programa para testar todas as classes do projeto
Polimorsmo

19

También podría gustarte