Java -polymorfisme
Java-polymorfisme
Polymorfisme betekent "vele vormen", en het komt voor wanneer we veel klassen hebben die door overerving aan elkaar gerelateerd zijn.
Zoals we in het vorige hoofdstuk hebben aangegeven; Overerving laat ons attributen en methoden erven van een andere klasse. Polymorfisme gebruikt die methoden om verschillende taken uit te voeren. Hierdoor kunnen we één handeling op verschillende manieren uitvoeren.
Denk bijvoorbeeld aan een superklasse met de naam Animal
die een methode heeft met de naam animalSound()
. Subklassen van dieren kunnen varkens, katten, honden, vogels zijn - en ze hebben ook hun eigen implementatie van een dierengeluid (het varken knort en de kat miauwt, enz.):
Voorbeeld
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");
}
}
Onthoud uit het hoofdstuk Overerving dat we het extends
sleutelwoord gebruiken om van een klasse te erven.
Nu kunnen we objecten Pig
en
Dog
objecten maken en de animalSound()
methode voor beide aanroepen:
Voorbeeld
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();
}
}
Waarom en wanneer "Overerving" en "Polymorfisme" gebruiken?
- Het is handig voor herbruikbaarheid van code: hergebruik attributen en methoden van een bestaande klasse wanneer u een nieuwe klasse aanmaakt.