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: 44.643 ]

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

NFS simples e fácil usando Mandriva e Kurumin

Os segredos da criptografia com o Gcipher

Freeduc - Educação escolar é com Linux!

Rodando aplicações nativas de Windows em Linux pela Web

As novidades no MenuetOS 2007

Leitura recomendada

Modelos de desenvolvimento

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

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

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

180 dias sem solução

  
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