Discussão:Polimorfismo (ciência da computação)
Adicionar tópicoEste artigo foi avaliado automaticamente com qualidade 2 e faz parte do âmbito de um WikiProjeto: Ciência da computação. | ||
---|---|---|
Para o WikiProjecto Ciência da computação este artigo possui importância ainda não avaliada. Se você se interessa pelo assunto, visite o projeto para conhecer as tarefas e discussões em curso. | ||
Se não tiver suas questões respondidas nesta página de discussão procure o(s) wikiprojeto(s) acima. |
Exemplo[editar código-fonte]
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)
Comentário[editar código-fonte]
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