In deze zelfstudie leert u met behulp van voorbeelden over het overnemen van JavaScript-klassen.
Klasse-overerving
Overerving stelt u in staat een klasse te definiëren die alle functionaliteit van een bovenliggende klasse overneemt en waarmee u meer kunt toevoegen.
Door klasse-overerving te gebruiken, kan een klasse alle methoden en eigenschappen van een andere klasse erven.
Overerving is een handige functie waarmee code herbruikbaar is.
Om klasse-overerving te gebruiken, gebruikt u het extends
trefwoord. Bijvoorbeeld,
// 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();
Uitvoer
Hoi Jack
In het bovenstaande voorbeeld Student
erft de klasse alle methoden en eigenschappen van de Person
klasse. Daarom heeft de Student
klasse nu de name
eigenschap en de greet()
methode.
Vervolgens hebben we toegang gekregen tot de greet()
methode van Student
klasse door een student1
object te maken.
JavaScript super () trefwoord
Het super
sleutelwoord dat in een onderliggende klasse wordt gebruikt, geeft de bovenliggende klasse aan. Bijvoorbeeld,
// 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();
Hier verwijst super
inside Student
class naar de Person
klas. Wanneer de constructor van de Student
klasse wordt aangeroepen, roept deze dus ook de constructor van de Person
klasse aan die er een eigenschap name aan toewijst.
Methode of eigenschap overschrijven
Als een onderliggende klasse dezelfde methode of eigenschapnaam heeft als die van de bovenliggende klasse, gebruikt deze de methode en eigenschap van de onderliggende klasse. Dit concept wordt methode overschrijven genoemd. Bijvoorbeeld,
// 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();
Uitvoer
Hallo student Jack. beroep: student
Hier zijn de occupation
eigenschap en de greet()
methode aanwezig in de bovenliggende Person
klasse en de onderliggende Student
klasse. Daarom Student
overschrijft de klasse de occupation
eigenschap en de greet()
methode.
Gebruik van overerving
- Omdat een onderliggende klasse alle functionaliteiten van de bovenliggende klasse kan erven, is herbruikbaarheid van code mogelijk.
- Zodra een functionaliteit is ontwikkeld, kunt u deze eenvoudig overnemen. U hoeft het wiel niet opnieuw uit te vinden. Dit zorgt voor een schonere code en is gemakkelijker te onderhouden.
- Omdat u ook uw eigen functionaliteiten in de kindklasse kunt toevoegen, kunt u alleen de nuttige functionaliteiten erven en andere vereiste functies definiëren.