Conteúdo do Curso
Java OOP
Java OOP
Princípios da POO: Polimorfismo
Polimorfismo
O polimorfismo é outro princípio da POO. Você já se deparou com o polimorfismo ao sobrecargar e sobrescrever métodos. De modo geral, essa é a essência do polimorfismo. Mas a definição de polimorfismo pode parecer um pouco intimidadora:
Mas, na realidade, é muito mais simples do que parece. Polimorfismo, em termos simples, pode ser dividido em 2 partes:
Sobrecarga de métodos: o que você aprendeu neste capítulo, mas vamos revisar.
Vamos analisar um exemplo: precisamos escrever um método que receba um parâmetro int
e retorne uma String
, assim como um método que faça o mesmo, mas com um parâmetro long
. Veja o trecho de código:
Main.java
public String doStuff(int parameter) { //... } public String doStuff(long parameter) { //... }
Como você pode ver acima, criamos 2 métodos com o mesmo nome, mas que podem realizar funções diferentes. Isso é chamado de sobrecarga de métodos.
Sobrescrita de Método: Você já encontrou esse tópico antes quando sobrescreveu o método
toString
neste capítulo. Mas vamos revisá-lo mais uma vez.
Vamos analisar um trecho de código que mostra como podemos sobrescrever um método. Temos uma classe chamada Airplane
que herda da classe Transport
. E na classe Transport
, há um método chamado move
que retorna "This transport has started moving".
Precisamos que o avião "start flying" em vez de "moving". Para isso, vamos sobrescrever o método move
na classe filha:
Transport.java
Airplane.java
public class Transport { // some fields public String move() { return "This transport has started moving"; } }
Como você pode ver, sobrescrevemos o método da classe pai na classe filha conforme necessário.
Dessa forma, o polimorfismo complementa muito bem a herança. Por meio do polimorfismo, é possível estender o código de maneira conveniente e otimizada, tornando-o flexível.
1. Por que precisamos de polimorfismo em Java?
2. Como o polimorfismo complementa a herança?
3. Qual palavra-chave é usada para sobrecarregar um método?
Obrigado pelo seu feedback!