Polimorfismo - Uma visão em C++ e Java
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.
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: 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.
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.
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: 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.
[]'s
Xiiico/Libra!