Junior
Qu'est-ce que l'héritage et le polymorphisme dans les types de données de référence?
sobes.tech IA
Réponse de l'IA
L'héritage est un mécanisme permettant à une classe (classe dérivée, classe enfant) d'hériter des propriétés et du comportement d'une autre classe (classe de base, classe parent). Cela favorise la réutilisation du code et la création de hiérarchies de classes.
Le polymorphisme est la capacité d'objets de différentes classes à réagir différemment à un même message (appel de méthode), en fonction de leur type concret. Dans le contexte de l'héritage, cela se manifeste souvent par la redéfinition des méthodes de la classe de base dans la classe dérivée.
Exemple (Java):
// Classe de base
class Animal {
public void makeSound() {
System.out.println("L'animal fait un son");
}
}
// Classe dérivée
class Dog extends Animal {
@Override // Redéfinition de la méthode
public void makeSound() {
System.out.println("Wouf!");
}
}
// Classe dérivée
class Cat extends Animal {
@Override // Redéfinition de la méthode
public void makeSound() {
System.out.println("Miaou!");
}
}
class Main {
public static void main(String[] args) {
Animal myDog = new Dog(); // Objet Dog, mais référence de type Animal
Animal myCat = new Cat(); // Objet Cat, mais référence de type Animal
myDog.makeSound(); // Appelle la méthode de Dog
myCat.makeSound(); // Appelle la méthode de Cat
}
}
Dans cet exemple:
- Héritage : Les classes
DogetCathéritent deAnimal. - Polymorphisme : Les variables
myDogetmyCatfont référence à des objetsDogetCatrespectivement, bien qu'elles aient le typeAnimal. Lors de l'appel àmakeSound(), la méthode de l'objet est exécutée, pas celle du type de la référence.