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 extends
parola 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 Student
classe eredita tutti i metodi e le proprietà della Person
classe. Quindi, la Student
classe ora avrà la name
proprietà e il greet()
metodo.
Quindi, si accede al greet()
metodo della Student
classe creando un student1
oggetto.
Parola chiave JavaScript super ()
La super
parola 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 super
interna si Student
riferisce alla Person
classe. Quindi, quando Student
viene chiamato il costruttore della classe, chiama anche il costruttore della Person
classe 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 occupation
proprietà e il greet()
metodo sono presenti nella Person
classe genitore e nella Student
classe figlia . Quindi, la Student
classe sovrascrive la occupation
proprietà 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.