Junior
Quelle est la différence entre héritage et polymorphisme?
sobes.tech IA
Réponse de l'IA
L'héritage est un mécanisme permettant à une classe (sous-classe, classe dérivée) d'hériter des champs et des méthodes d'une autre classe (super-classe, classe parente). Cela favorise la réutilisation du code.
Le polymorphisme est la capacité d'utiliser une même interface pour représenter différentes formes de base. Dans le contexte de Java, cela signifie qu'une variable de type référence peut faire référence à un objet de son propre type ou à un objet de l'un de ses sous-types. On distingue le polymorphisme à la compilation (surcharge de méthodes) et à l'exécution (surcharge de méthodes).
La principale différence :
- Héritage définit des relations entre classes (parent-enfant) et permet de réutiliser le code.
- Polymorphisme permet d'accéder à différents objets via une interface commune, en exécutant la méthode appropriée en fonction du type réel de l'objet lors de l'exécution.
Exemple de polymorphisme à l'exécution :
class Animal {
public void sound() {
System.out.println("L'animal fait un son");
}
}
class Dog extends Animal {
@Override
public void sound() {
System.out.println("Ouaf-ouaf");
}
}
class Cat extends Animal {
@Override
public void sound() {
System.out.println("Miaou-miaou");
}
}
public class Main {
public static void main(String[] args) {
Animal myDog = new Dog(); // Polymorphisme : variable de type Animal référant à un objet Dog
Animal myCat = new Cat(); // Polymorphisme : variable de type Animal référant à un objet Cat
myDog.sound(); // Appelle la méthode sound() de la classe Dog
myCat.sound(); // Appelle la méthode sound() de la classe Cat
}
}