Programação Orientada a Objetos: Uma Abordagem com Java/Introdução/Polimorfismo: diferenças entre revisões
[edição não verificada] | [edição não verificada] |
Conteúdo apagado Conteúdo adicionado
Criou a página com "Polimorfismo é o princípio pelo qual duas ou mais classes derivadas de uma mesma superclasse podem invocar métodos que têm a mesma identificação (assinatura) mas com..." |
mSem resumo de edição |
||
Linha 1:
== Polimorfismo ==
Polimorfismo é o princípio pelo qual duas ou mais classes derivadas de uma mesma superclasse podem invocar métodos que têm a mesma identificação (assinatura) mas comportamentos distintos, especializados para cada classe derivada, usando para tanto uma referência a um objeto do tipo da superclasse. Esse mecanismo é fundamental na programação orientada a objetos, permitindo definir funcionalidades que operem genericamente com objetos, abstraindo-se de seus detalhes particulares quando esses não forem necessários.
Para que o polimorfismo possa ser utilizado, é necessário que os métodos que estejam sendo definidos nas classes derivadas tenham exatamente a mesma assinatura do método definido na superclasse; nesse caso, está sendo utilizado o mecanismo de '''redefinição''' ou '''
No caso do polimorfismo, o compilador não tem como decidir estaticamente qual o método que será utilizado se o método foi redefinido em outras classes derivadas — afinal, pelo princípio da substituição, um objeto de uma classe derivada pode estar sendo referenciado como sendo um objeto da superclasse. Se esse for o caso, o método que deve ser selecionado é o da classe derivada e não o da superclasse. Dessa forma, a decisão sobre qual dos métodos é o método que deve ser selecionado, de acordo com o tipo do objeto, pode ser tomada apenas em tempo de execução, através do mecanismo de '''ligação tardia'''. O mecanismo de ligação tardia também é conhecido pelos termos em inglês ''late binding'', ''dynamic binding'' ou ainda ''run-time binding''.
|