Polimorfismo em Java

Índice
Dentro da programação orientada a objetos, existem 3 pilares fundamentais, o herança, que nos permite obter os atributos e métodos de uma classe pai, o encapsulamento que nos permite manter os métodos e atributos de uma classe e que não devem ser vistos fora dela e o terceiro que é o polimorfismo.
PolimorfismoPalavra polimorfismo vem de uma palavra grega e significa que tem muitas formas, então podemos definir que polimorfismo é a capacidade de usar muitas formas em Java.
A fim de entender o que polimorfismo Devemos entender os conceitos-chave, um deles são os tipos, um tipo é a definição que é gerada a partir de uma classe, então isso leva a dois conceitos adicionais relacionados.
O subtipoQuando criamos uma classe que herda de outra, estamos criando um subtipo, por ser um tipo derivado de um tipo superior, podemos dizer por exemplo que se tivermos uma classe Figura geométrica e a partir disso criamos uma classe Círculo que o herda, então nossa classe Circle define um subtipo de GeometricFigure.
O supertipoÉ o oposto, quando uma classe é herdada, ela se torna uma superclasse ou classe pai, portanto agora passa a ser a supertipo, ou seja, o tipo primário ou que ajuda a definir seu subtipos, se seguirmos o exemplo que já definimos, o supertipo seria a classe Figura geométrica.
Com isso definimos os conceitos que nos ajudarão a entender o polimorfismo, se colocarmos o exemplo um pouco mais extenso podemos dizer que um Círculo será sempre do tipo Figura geométrica, mas nem todos os tipos de Figura geométrica eles serão do tipo Círculo, se falarmos sobre as classes que acabamos de definir, por exemplo, se agora criarmos uma subclasse que herda da classe Figura geométrica e é chamado Retângulo, agora temos um novo subtipo, que ainda é do tipo Figura geométrica mas assume uma nova forma e aqui está o polimorfismo.
Uma vez que vimos a teoria dos tipos, podemos então dizer que uma subclasse será sempre do tipo de sua classe pai, mas que a classe pai não será do tipo de sua subclasse ou classe filha, com isso podemos então veja o exemplo a seguir, onde em um método pedimos um objeto do tipo Figura geométricaPortanto, podemos receber suas diversas formas, neste caso podemos receber um objeto Círculo ou Retângulo, já que ambos, apesar de serem diferentes, compartilham o supertipo.
Vamos ver na imagem a seguir um código que nos mostra como um método se comportaria com o polimorfismo:

Neste exemplo, o método show object espera um objeto do tipo Figura geométrica, se sabemos que Circle e Rectangle são subclasses de FigureGeometric, então podemos passar seus objetos para o método, uma vez que são formas diferentes de FigureGeometric e cumprem a função.
Já aprendemos a usar o terceiro pilar da orientação a objetos, agora podemos construir métodos mais extensos que podem ser reutilizados em diferentes implementações de nossos programas em Java.Gostou e ajudou este tutorial?Você pode recompensar o autor pressionando este botão para dar a ele um ponto positivo

Você vai ajudar o desenvolvimento do site, compartilhando a página com seus amigos

wave wave wave wave wave