DISCIPLINA: ANALISE DE PROJETOS ORIENTADOS A OBJETOS
PROFESSORA: JAKELYNE MACHADO LIMA SILVA POLIMORFISMO
LUIZ ANTONIO FERNANDES DA SILVA - 2014013612
ZADOQUE GOMES DA COSTA BENJÓ - 20127050 Polimorfismo
Várias formas de fazer várias coisas.
O Polimorfismo não é um pensamento novo para nós. Ele está contido em nosso dia a dia, principalmente na linguagem. Para utilizar polimorfismo, os objetos devem executar as mesmas ações (métodos), mesmo que com comportamento diferente. Vantagens de usar Polimorfismo
Novas classes podem ser adicionadas a partes
gerais do programa com pouca ou nenhuma modificação E possível trazer clareza ao código, diminuir linhas do mesmo e ainda é possível inserir aplicações flexíveis. Polimosfismo Ad-Hoc É implementado quando queremos definir uma coisa específica, diferente do universal, não pode ser usado em todo lugar, logo sabemos quantas vezes ele será aplicado. Ad-Hoc Sobrecarga Permite que um “nome de função” seja utilizado mais de uma vez com diferentes assinaturas, porém com tipos de parâmetros diferentes por quantidades ou por tipo. O compilador automaticamente chama a função “correta” que deve ser utilizada. Ad-Hoc Coerção A ideia dele é que a linguagem é quem faz uma coerção de tipos e não o programador, ou seja, que esta não é feita voluntariamente pelo programador e sim pela linguagem. Polimorfismo Paramétrico
A ideia do polimorfismo universal paramétrico é ao definir um
elemento(que pode ser uma classe, um método ou alguma outra estrutura da linguagem), a definição do tipo sozinha ela é incompleta, ela precisa parametrizar este tipo, ou seja, teoricamente não existiria o tipo sozinho, o que sim existe e o tipo de alguma coisa de alguma coisa, por exemplo, uma list não seria só do tipo list, e sim do tipo list de elefantes. Vale lembrar que este polimorfismo só foi implementado em Java a partir da versão 1.5 Polimorfismo de Inclusão É quando você tem um ponteiro para mãe e ele consegue apontar para um objeto da filha, já que esse polimorfismo é muito básico, é difícil você conseguir outras coisas sem ele, por isso boa parte das linguagens orientadas a objetos conhecidas implementam esse polimorfismo.
A definição da hierarquia de generalização/especialização favorece o
uso do polimorfismo de inclusão pois as subclasses (ou subtipos) herdam automaticamente todas as opera ̧coes da superclasse(ou supertipo). Considerações finais Podemos notar a importância do Polimorfismo para a redução de código, simplicidade, flexibilidade e outros. O polimorfismo é utilizado em diversas refatorações e muitos Padrões de Projetos, portanto entendê-lo é fundamental para qualquer desenvolvedor.