6- Polimorfismo

19
Polimorfismo Jefferson Ferreira Barbosa [email protected] João Pessoa 2014 CENTRO UNIVERSITÁRIO DE JOÃO PESSOA COORDENAÇÃO DE SISTEMAS DE INFORMAÇÃO

description

Polimorfismo

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