Polymorphisme Java
Polymorphisme Java
Le polymorphisme signifie "plusieurs formes", et il se produit lorsque nous avons de nombreuses classes liées les unes aux autres par héritage.
Comme nous l'avons précisé dans le chapitre précédent; L'héritage nous permet d'hériter des attributs et des méthodes d'une autre classe. Le polymorphisme utilise ces méthodes pour effectuer différentes tâches. Cela nous permet d'effectuer une même action de différentes manières.
Par exemple, pensez à une superclasse appelée Animal
qui a une méthode appelée animalSound()
. Les sous-classes d'animaux pourraient être des cochons, des chats, des chiens, des oiseaux - et ils ont aussi leur propre implémentation d'un son d'animal (le cochon ronfle, et le chat miaule, etc.) :
Exemple
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");
}
}
Rappelez-vous du chapitre Héritage que nous utilisons le mot- extends
clé pour hériter d'une classe.
Nous pouvons maintenant créer des objets et appeler la Pig
méthode sur les deux :
Dog
animalSound()
Exemple
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();
}
}
Pourquoi et quand utiliser "Héritage" et "Polymorphisme" ?
- C'est utile pour la réutilisabilité du code : réutilisez les attributs et les méthodes d'une classe existante lorsque vous créez une nouvelle classe.