Polimorfismo - Uma visão em C++ e Java

Artigo que aborda o tema Polimorfismo e como é sua utilização em Programação Orientada a Objetos, com a implantação de exemplos em C++ e Java.

[ Hits: 43.422 ]

Por: Matheus Santana Lima em 27/11/2008


Classes e métodos abstratos em Java e C++



Em C++ utilizamos a função virtual, acrescentando =0 após sua assinatura:

class ClassePai{
   public:
      ClassePai(){};
      virtual void imprime() =0;
};//Aqui declaramos o método abstrato.

class ClasseFilha: public ClassePai{
    public:
         void imprime(){
                cout << "ClasseFilhaA" << endl;
         }
};

Em Java utilizamos a palavra-chave abstract:

abstract class ClassePai{ //Aqui declaramos a classe como abstrata.
     abstract void imprime(); //Aqui declaramos o método abstrato.
}

class ClasseFilhaA extends ClassePai{
    public void imprime(){
           System.out.println("ClasseFilhaA");}
}

Página anterior     Próxima página

Páginas do artigo
   1. O que é Polimorfismo
   2. Classes e métodos abstratos em Java e C++
   3. Implantação em C++
   4. Implantação em Java
Outros artigos deste autor

Análise do Syllable, mais um interresante sistema operacional livre

Childsplay - Suite completa de jogos para a educação infantil

VNC + Hamachi

Projeto OLPC - O famoso laptop de $100

wxPython, uma biblioteca GUI multi-plataforma (parte 1)

Leitura recomendada

Introdução a eXtreme Programming (XP) e instalação do ANT + JUnit

180 dias sem solução

Certificação Java - 2 - Literals and Ranges of All Primitive Data Types (Exam Objective 4.6)

Certificação Java - 1 - Java Programming Language Keywords (Exam Objective 4.4)

Entendendo POO (História e conceitos)

  
Comentários
[1] Comentário enviado por femars em 27/11/2008 - 17:36h

Opa... mto legal e bem feito... parabens!
[]'s
Xiiico/Libra!

[2] Comentário enviado por edgurgel em 08/12/2008 - 17:28h

Na implementação em C++, o construtor da classe abstrata deve ser protegido, pois ele só será chamado na hora da construção dos filhos. Não faz sentido ser public.

[3] Comentário enviado por matheusslima em 08/12/2008 - 21:04h

Sou obrigado a discordar de voce, os metodos declarados na classe base sao abstratos(funçao virtual pura) e consequentemente a classe base é uma classe abstrata, e como tal não pode ser instanciada como um objeto. Este é um dos conceitos base do Polimorfismo que você esqueceu.

[4] Comentário enviado por danltmz em 28/09/2009 - 21:34h

"Sou obrigado a discordar de voce, os metodos declarados na classe base sao abstratos(funçao virtual pura) e consequentemente a classe base é uma classe abstrata, e como tal não pode ser instanciada como um objeto. Este é um dos conceitos base do Polimorfismo que você esqueceu. "


Exato :)


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts