Jump to content

Miguel Oliveira

Members
  • Content count

    22
  • Joined

  • Last visited

Community Reputation

4 Comum

1 Follower

About Miguel Oliveira

  • Birthday 05/05/1992

Informações Pessoais

  • Sexo
    Masculino

Contato

  • Hangouts
    miguelcarvalho.ti@gmail.com
  • Skype
    oliveira.miguell
  • Twitter
    @oliveiramig
  • Facebook
    http://www.facebook.com/miguelcarvalho.ti
  1. Miguel Oliveira

    1.4.1 Métodos de Interface e Polimorfismo

    Agradeço o João pelo maravilhoso artigo, aprendendo muito com ela. Agora vou tentar resolver sua dúvida Rogério Lopes... No início do artigo não havia interfaces e só existia um Alvo, que era o Gato, mais abaixo foi criado a interface Alvo e implementamos ela em todas as classes alvos, inclusive Gato. Começamos criar vário alvos e implementar a interface Alvo neles só que aí ficou um problema o método atirar ainda continua aceitando apenas Gato. A princípio tínhamos a classe atirar dessa forma: public function atira( Pau $pau , Gato $gato ) { $gato->acerta( $pau ); } Então beleza, se eu fizer: $eu->atira($pau, $gato); vai funcionar certo? Pois o método atirar aceita Gato. E se eu quiser fazer isso? $eu->atira($pau, $cao); Não irá funcionar pois o segundo parâmetro do método atirar aceita apenas Gato. Você concorda comigo que Cao e Gato são alvos e implementam a interface Alvo? Então se eu mudar no método acertar colocar Alvo ao invés de Gato vai funcionar? Sim! Então fica assim: public function atira(Projetil $projetil, Alvo $alvo) { $gato->acerta($pau); } PS: Essa explicação sobre o Alvo também serve para o Projetil, pois todos os projéteis implementam a interface Projetil. Espero ter ajudado.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.