Ereditarietà delle classi JavaScript

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.

Articoli interessanti...