Discussão:Polimorfismo (ciência da computação)

O conteúdo da página não é suportado noutras línguas.
Adicionar tópico
Origem: Wikipédia, a enciclopédia livre.
(Redirecionado de Discussão:Polimorfismo)
Último comentário: 9 de outubro de 2009 de 200.221.128.129 no tópico Sobre a Introdução

Retirei o exemplo de sobrecarga, pois acredito que confundia o leitor e desviava o fim didático do exemplo. Se alguém ainda quiser um exemplo desse assunto, sugiro colocar em separado. O link para o tema ainda foi mantido. Vinícius 23:54, 25 Setembro 2006 (UTC).

Acho que ficou melhor assim. Luís Felipe Braga Msg 00:25, 26 Setembro 2006 (UTC)

Não sei quem escreveu este artigo, se traduziu, resumiu, ou inventou, mas os conceitos estão errados. Na frase "Definamos então, duas subclasses, Soma e Subtracao, que implementam a classe OperacaoMatematica:" ai abaixo vem o exemplo "public class Soma extends OperacaoMatematica ". Primeiro vc fala em Interface ai no exemplo me mostra extensão e ainda por cima fala que a classe Soma "implementa" OperacaoMatematica. Tenha dó meu amigo, imagina um aluno da faculdade buscando conhecimento e apresentando isso pro professor. Respeito a admiro a boa vontade de todos em partilhar conhecimento, mas, que o façam de maneira correta. Discussão:Paulo Rodrigo Sanders 23:18, 18 Dezembro 2008 (UTC)


Não vi nenhum conceito errado no artigo:

  • Qualquer subclasse implementa uma superclasse. A palavra "extends" denota essa implementação, assim como a "implements". O que muda é apenas um detalhe sintático da linguagem Java. Em outras linguagens, como o C#, a palavra é inclusive a mesma.
  • Em nenhum momento foi falado em Interface. Onde você viu isso? Acessei até mesmo as versões antigas do artigo, e não vi nenhuma menção a isso. Sempre foi falado na implementação da classe abstrata.
  • Toda classe tem uma interface, independente dela ser ou não definida em uma "interface". A interface é a parte visível da classe, no caso do Java, será através dos métodos public, protected e default.

Ao invés de adotar uma postura arrogante, atenha-se apenas as críticas.

Vinícius 15:50, 18 Agosto 2009 (UTC).

Sobre a Introdução[editar código-fonte]

"(...) Assim, um mesmo método pode apresentar várias formas, de acordo com seu contexto. "

O conceito de Polimorfismo é tratar coisas diferentes (polimorfas) de foma homogênea. Desse jeito, espera-se que um mesmo método possa tratar (da mesma maneira) um conjunto de classes diferentes.

Ex: public Bolo prepararBolo (Fruta fruta){

         Bolo bolo = new Bolo();
         bolo.acrescentaIngrediente(fruta.fatia());
         (...)
         return bolo;
   }

Esse método prepara um "bolo" de qualquer objeto do tipo fruta, da mesma maneira. Note que seria possível sobrecarregar o método prepararBolo para uma variedade de frutas diferentes. Mas isso não seria polimorfismo, ou no máximo seria um polimorfismo ad-hoc pois não existe garantia que as várias implementações do método se comporte da mesma maneira.


"O polimorfismo é importante, pois permite que a semântica de uma interface seja efetivamente separada da implementação que a representa. "

Não é exatamente o polimorfismo que permite a separação da semântica de uma interface com a implementação. O polimorfismo permite que diferentes implementações sejam tratados de forma homogênea. Esse conceito é mais amplo pois se aplica a linguagens que não sejam orientadas a objeto. ---200.221.128.129 (discussão) 20h58min de 9 de outubro de 2009 (UTC)Responder

O texto seguinte foi movido de: Polimorfismo

Obs.: Alguns exemplos citados como Tipos de Polimorfismo relacionados a OO, pelo meu entendimento, não se enquadram nesse conceito. Veja http://en.wikipedia.org/wiki/Polymorphism_in_object-oriented_programming o comentário precedente não foi assinado por 187.63.7.5 (discussão • contrib.)

O texto acima foi movido de: Polimorfismo