In questo tutorial imparerai l'ereditarietà delle classi JavaScript con l'aiuto di esempi.
Eredità di classe
L'ereditarietà consente di definire una classe che prende tutte le funzionalità da una classe genitore e consente di aggiungerne altre.
Utilizzando l'ereditarietà delle classi, una classe può ereditare tutti i metodi e le proprietà di un'altra classe.
L'ereditarietà è una funzionalità utile che consente il riutilizzo del codice.
Per usare l'ereditarietà delle classi, usi la extendsparola chiave. Per esempio,
// parent class class Person ( constructor(name) ( this.name = name; ) greet() ( console.log(`Hello $(this.name)`); ) ) // inheriting parent class class Student extends Person ( ) let student1 = new Student('Jack'); student1.greet();
Produzione
Ciao Jack
Nell'esempio precedente, la Studentclasse eredita tutti i metodi e le proprietà della Personclasse. Quindi, la Studentclasse ora avrà la nameproprietà e il greet()metodo.
Quindi, si accede al greet()metodo della Studentclasse creando un student1oggetto.
Parola chiave JavaScript super ()
La superparola chiave utilizzata all'interno di una classe figlia denota la sua classe genitore. Per esempio,
// parent class class Person ( constructor(name) ( this.name = name; ) greet() ( console.log(`Hello $(this.name)`); ) ) // inheriting parent class class Student extends Person ( constructor(name) ( console.log("Creating student class"); // call the super class constructor and pass in the name parameter super(name); ) ) let student1 = new Student('Jack'); student1.greet();
Qui, la classe superinterna si Studentriferisce alla Personclasse. Quindi, quando Studentviene chiamato il costruttore della classe, chiama anche il costruttore della Personclasse che gli assegna una proprietà name.
Metodo o proprietà di sostituzione
Se una classe figlia ha lo stesso metodo o nome di proprietà di quella della classe genitore, utilizzerà il metodo e la proprietà della classe figlia. Questo concetto è chiamato override del metodo. Per esempio,
// parent class class Person ( constructor(name) ( this.name = name; this.occupation = "unemployed"; ) greet() ( console.log(`Hello $(this.name).`); ) ) // inheriting parent class class Student extends Person ( constructor(name) ( // call the super class constructor and pass in the name parameter super(name); // Overriding an occupation property this.occupation = 'Student'; ) // overriding Person's method greet() ( console.log(`Hello student $(this.name).`); console.log('occupation: ' + this.occupation); ) ) let p = new Student('Jack'); p.greet();
Produzione
Ciao studente Jack. occupazione: studente
Qui, la occupationproprietà e il greet()metodo sono presenti nella Personclasse genitore e nella Studentclasse figlia . Quindi, la Studentclasse sovrascrive la occupationproprietà e il greet()metodo.
Usi dell'ereditarietà
- Poiché una classe figlia può ereditare tutte le funzionalità della classe genitore, ciò consente la riusabilità del codice.
- Una volta sviluppata una funzionalità, puoi semplicemente ereditarla. Non c'è bisogno di reinventare la ruota. Ciò consente un codice più pulito e più facile da mantenere.
- Poiché puoi anche aggiungere le tue funzionalità nella classe figlia, puoi ereditare solo le funzionalità utili e definire altre funzionalità richieste.








