73. Héritage avec extends et super
L'Héritage permet à une classe (la classe enfant/sous-classe) d'hériter des propriétés et des méthodes d'une autre classe (la classe parente/super-classe). Cela permet de réutiliser du code et de modéliser des relations de type « est un ».
Le mot-clé extends
javascript
class Animal {
constructor(name) {
this.name = name;
}
eat() {
console.log(${this.name} mange.);
}
}
// Dog étend Animal, héritant des fonctionnalités 'name' et 'eat()' class Dog extends Animal { bark() { console.log('Wouf !'); } }
const myDog = new Dog('Fido'); myDog.eat(); // Fido mange. myDog.bark(); // Wouf !
Le mot-clé super
Si la classe enfant a besoin de son propre constructeur, elle doit d'abord appeler super(arguments). super appelle le constructeur de la classe parente.
javascript
class Puppy extends Dog {
constructor(name, breed) {
super(name); // Appelle le constructeur d'Animal (définit 'this.name')
this.breed = breed;
}
fetch() {
console.log(${this.name} (un ${this.breed}) rapporte la balle.);
}
}
const puppy = new Puppy('Wag', 'Beagle'); puppy.fetch();