6- Polimorfismo
-
Upload
johnatas-ferreira -
Category
Documents
-
view
9 -
download
0
description
Transcript of 6- Polimorfismo
-
Polimorsmo
Jefferson Ferreira Barbosa [email protected]
Joo Pessoa 2014
CENTRO UNIVERSITRIO DE JOO PESSOA COORDENAO DE SISTEMAS DE INFORMAO
-
At aqui...
Fundamentos da Linguagem Java Princpios da Orientao a Objetos Denies da Linguagem Construtores, Encapsulamento e Sobrecarga
Herana Hoje: Polimorsmo
2 Polimorsmo
-
Polimorsmo 3
-
O que polimorsmo?
O po l i f o rm i smo de r i va da pa l av ra 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 4
-
Mas que certas coisas so estas?
Chamadas de mtodos
Polimorsmo 5
-
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 6
-
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.
Polimorsmo 7
Mais especicamente, o Mpo do objeto B que
determinar.
-
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 8
-
Exemplo
Representao:
Polimorsmo 9
-
Exemplo
Polimorsmo 10
mover(); mover(); mover();
-
Exemplo
Polimorsmo 11
-
Classicao
Polimorsmo de Sobrecarga Ocorre quando os mtodos com o mesmo nome, na mesma classe, possuem comportamentos diferentes, tendo diferentes parmetros.
Polimorsmo 12
Exemplo:
-
Classicao
Polimorsmo de Sobreposio a redenio de mtodos denidos nas superclasses por classes descendentes.
Polimorsmo 13
Pessoa
- salario - rg - nome
+getSalario()
Funcionario Professor
+getSalario
Herana por extenso e Polimorsmo por
sobreposio
-
Classicao
Polimorsmo 14
Sobreposio
-
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.
18 Polimorsmo
-
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
19 Polimorsmo