Polimorfismo Java
Polimorfismo Java
Polimorfismo significa "muitas formas", e ocorre quando temos muitas classes que estão relacionadas entre si por herança.
Como especificamos no capítulo anterior; A herança nos permite herdar atributos e métodos de outra classe. O polimorfismo usa esses métodos para realizar diferentes tarefas. Isso nos permite realizar uma única ação de maneiras diferentes.
Por exemplo, pense em uma superclasse chamada Animal
que tem um método chamado animalSound()
. As subclasses de animais podem ser porcos, gatos, cachorros, pássaros - e eles também têm sua própria implementação de um som animal (o porco uiva, o gato mia, etc.):
Exemplo
class Animal {
public void animalSound() {
System.out.println("The animal makes a sound");
}
}
class Pig extends Animal {
public void animalSound() {
System.out.println("The pig says: wee wee");
}
}
class Dog extends Animal {
public void animalSound() {
System.out.println("The dog says: bow wow");
}
}
Lembre-se do capítulo Herança que usamos a extends
palavra-chave para herdar de uma classe.
Agora podemos criar Pig
e
Dog
objetos e chamar o animalSound()
método em ambos:
Exemplo
class Animal {
public void animalSound() {
System.out.println("The animal makes a sound");
}
}
class Pig extends Animal {
public void animalSound() {
System.out.println("The pig says: wee wee");
}
}
class Dog extends Animal {
public void animalSound() {
System.out.println("The dog says: bow wow");
}
}
class Main {
public static void main(String[] args) {
Animal myAnimal = new Animal(); // Create a Animal object
Animal myPig = new Pig(); // Create a Pig object
Animal myDog = new Dog(); // Create a Dog object
myAnimal.animalSound();
myPig.animalSound();
myDog.animalSound();
}
}
Por que e quando usar "herança" e "polimorfismo"?
- É útil para reutilização de código: reutilize atributos e métodos de uma classe existente ao criar uma nova classe.