image

Acesse bootcamps ilimitados e +650 cursos pra sempre

60
%OFF
Article image
Olival Neto
Olival Neto14/05/2024 08:54
Compartilhe
Nexa - Análise Avançada de Imagens e Texto com IA na AWSRecomendados para vocêNexa - Análise Avançada de Imagens e Texto com IA na AWS

Polimorfismo (Sobreescrita, Sobrecarga) + Interface

  • #Java

Fala, Dev! Criei essa aula para falar de polimorfismos de forma prática. Em poucos minutos, você já sai dominando o tema. Assista aqui: https://youtu.be/glvlW-L-HeE

Se formos olhar para a palavra: Poli + Morfo, fica mais fácil de entender: Poli (Multiplas) + Morfo (Formas), ou seja, muitas formas de fazer a mesma coisa.

No Java, o polimorfismo é aplicado através dos métodos, que podem ter o mesmo nome, mas mudando alguns detalhes.

O primeiro detalhe importante é a assinatura. Aqui, um método pode ter o mesmo nome, deste que tenha a quantidade de parâmetros diferentes do outro, assim como, pode usar diferentes tipos de dados, como parâmetro.

Exemplo:

void falar()

void falar(String texto)

void falar(int quantidade)

void falar(String texto, int quantidade)

Neste exemplo, temos um método com o mesmo nome, "falar", que possui três assinaturas diferentes, ou seja, um método sem parâmetro, outro com parâmetro, e outro com mais de um parâmetro, e um com parâmetro de tipos de dados diferentes.

A isso, dar-se o nome de polimorfismo de sobrecarga, onde estou apenas sobrecarregando um método. Afinal, estamos usando o mesmo nome, então, a palavra sobrecarregar, pode ser vista como se eu estivesse pondo um monte de caixas para uma pessoa sobrecarregar, caixas do mesmo tipo, ou seja, estou empilhando caixas para que uma pessoa sozinha as carregue. Eu estou a sobrecarregando.

Assim, fica mais fácil de lembrar da sobrecarga, um método com mesmo nome, que recebe parâmetros diferentes, e por isso, pode se comportar diferente.

Já a segunda forma, o polimorfismo de sobreescrita, neste, temos o método com o mesmo nome, mas com um comportamento diferente. Aqui, utilizamos mais esse conceito em conjunto com o de herança do java. Veja abaixo:

class Pessoa {

void falar(){

System.out.println("falar");

}}

class Gestor extends Pessoa{

@Override

void falar(){

System.out.println("falar com autoridade");

}}

Neste exemplo, o método falar presente na classe Pessoa é o mesmo da classe Gestor, que o herda. Sabemos disso, através da anotação @Override, acima do método.

O método tem o mesmo nome, mas o comportamento dele, ou seja, o que está dentro das chaves, mudou. Logo, temos a sobreescrita (sobre+escrita), ou seja, atualizamos a escrita, mudamos a escrita, mudamos o comportamento do método.

Acredito que agora, esses conceitos ficaram mais claros de serem usados. Caso queira aprofundar o assunto, e ainda visualizar um pouco de interfaces, acesse a aula e assista aqui: https://youtu.be/glvlW-L-HeE

Ah! Reza a lenda, de quem se inscrever no canal, aprende 2x mais rápido. Fica a dica. Haha

Bons estudos.

Compartilhe
Recomendados para você
Deal - Spring Boot e Angular (17+)
Cognizant - Arquitetura com Spring Boot e Cloud
Claro - Java com Spring Boot
Comentários (0)
Recomendados para você