Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
Linux: Simples .. Só para os amigos verem
Por neuronios
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha



Artigo

Polimorfismo - Uma visão em C++ e Java
Linux user
matheusslima
27/11/2008
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.
Por: Matheus Santana Lima
[ Hits: 16243 ]
Conceito: 7.3   3 voto(s)3 voto(s)3 voto(s)3 voto(s)3 voto(s) + quero dar nota ao artigo

O que é Polimorfismo

Polimorfismo é um conceito abstrato que, de forma sucinta, diz que algo pode responder de formas diferentes para uma mesma situação.

Este mesmo conceito é aplicado em OOP, em que uma classe Pai/Super classe possui métodos que receberão implantações de formas diferentes, de acordo com a classe derivada.

Veja o exemplo a seguir para uma melhor compreensão de Polimorfismo:
Linux: Polimorfismo
Neste exemplo temos a classe Animal, esta possui a função Emite Som.

Temos também as classes Arara e Cascavel, que também são animais e herdam as características da classe Animal, e como tal emitem algum som.

Arara e Cascavel, apesar de ambos serem animais, emitem sons de formas diferentes.

Classes e métodos abstratos

A implementação de Polimorfismo se faz através de Classes e métodos abstratos. Um método abstrato é um método/procedimento sem um corpo, isto significa que a subclasse que herdar uma classe que contém métodos abstratos tem que, necessariamente, fornecer todo o corpo destes métodos, caso contrário ocorrerá um erro na compilação. Uma classe que contém métodos abstratos é chamada de classe abstrata.

As classes abstratas não podem ser usadas para instanciar objetos, porque são classes incompletas, em que seus métodos não estão totalmente definidos.

No uso de métodos abstratos, o computador é "enganado" e induzido a acreditar que a função esta definida, quando na verdade ela vai ser definida mais tarde. Os métodos abstratos, a grosso modo, "guardam o lugar" para a função real, que vai ser definida posteriormente.

A utilização de classes abstratas é interessante em algumas situações, como por exemplo, quando queremos forçar que determinada função seja definida ao ser herdada por uma classe derivada, ou ainda quando não faz sentido, ou não se deseja que a classe seja instanciada, como no caso do exemplo anterior, na classe Animal, que serve apenas como molde para as classes derivadas.

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

Leitura recomendada

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


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.