Polimorfizm Javy
Polimorfizm Javy
Polimorfizm oznacza „wiele form” i występuje, gdy mamy wiele klas, które są ze sobą powiązane dziedziczeniem.
Tak jak opisaliśmy w poprzednim rozdziale; Dziedziczenie pozwala nam dziedziczyć atrybuty i metody z innej klasy. Polimorfizm wykorzystuje te metody do wykonywania różnych zadań. To pozwala nam wykonać jedną akcję na różne sposoby.
Pomyśl na przykład o nadklasie o nazwie Animal
, która ma metodę o nazwie animalSound()
. Podklasami zwierząt mogą być Świnie, Koty, Psy, Ptaki. Mają też własną implementację odgłosów zwierząt (świnia mruczy, kot miauczy itp.):
Przykład
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");
}
}
Pamiętaj z rozdziału Dziedziczenie , że używamy extends
słowa kluczowego do dziedziczenia z klasy.
Teraz możemy tworzyć obiekty Pig
i
Dog
wywołać animalSound()
metodę na obu z nich:
Przykład
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();
}
}
Dlaczego i kiedy używać „dziedziczenia” i „polimorfizmu”?
- Przydaje się do ponownego wykorzystania kodu: ponowne wykorzystanie atrybutów i metod istniejącej klasy podczas tworzenia nowej klasy.