Vererben von Eigenschaften & Methoden
Teil des Abschnitts Objektorientierte Programmierung der JavaScript-Journey von Coddy — Lektion 28 von 56.
Wenn eine Klasse eine andere Klasse erweitert, erbt sie alle Eigenschaften und Methoden von der Elternklasse. Das bedeutet, dass Kindklassen automatisch Zugriff auf alles haben, was in der Elternklasse definiert ist.
Erstellen wir eine Elternklasse mit Eigenschaften und Methoden:
class Animal {
constructor(name, age) {
this.name = name;
this.age = age;
}
eat() {
return `${this.name} is eating`;
}
sleep() {
return `${this.name} is sleeping`;
}
}Erstellen wir nun eine Kindklasse, die von Animal erbt:
class Dog extends Animal {
constructor(name, age, breed) {
super(name, age);
this.breed = breed;
}
}Erstellen Sie eine Instanz der Dog-Klasse:
const rex = new Dog("Rex", 3, "German Shepherd");Obwohl wir eat() und sleep() nicht in der Klasse Dog definiert haben, können wir diese Methoden dennoch verwenden:
console.log(rex.eat()); // Outputs: Rex is eating
console.log(rex.sleep()); // Outputs: Rex is sleepingUnd wir können auf alle geerbten Eigenschaften zugreifen:
console.log(rex.name); // Ausgabe: Rex
console.log(rex.age); // Ausgabe: 3
console.log(rex.breed); // Ausgabe: German ShepherdAufgabe
Erstelle eine Klasse Cake, die Dessert erweitert, und exportiere sie. Der Cake sollte Folgendes haben:
- Alle geerbten Eigenschaften und Methoden von Dessert
- Eine neue Eigenschaft
flavor - Eine neue Methode
addCandles(), die einen String “Added candles to ${this.name}!” zurückgibt
Spickzettel
Unterklassen erben alle Eigenschaften und Methoden von ihrer Elternklasse unter Verwendung des Schlüsselworts extends:
class Animal {
constructor(name, age) {
this.name = name;
this.age = age;
}
eat() {
return `${this.name} is eating`;
}
sleep() {
return `${this.name} is sleeping`;
}
}
class Dog extends Animal {
constructor(name, age, breed) {
super(name, age);
this.breed = breed;
}
}
const rex = new Dog("Rex", 3, "German Shepherd");
console.log(rex.eat()); // Rex is eating
console.log(rex.name); // Rex
console.log(rex.breed); // German ShepherdDie Unterklasse kann auf alle geerbten Eigenschaften und Methoden zugreifen, ohne diese neu definieren zu müssen.
Probier es selbst
import { Dessert } from './desserts.js';
import { Cake } from './desserts.js';
// Testcode - nicht ändern
const myCake = new Cake("Birthday Cake", 300, "Chocolate");
console.log(myCake.describe()); // Sollte "Birthday Cake has 300 calories" ausgeben
console.log(myCake.flavor); // Sollte "Chocolate" ausgeben
console.log(myCake.addCandles()); // Sollte "Added candles to Birthday Cake!" ausgebenDiese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Objektorientierte Programmierung
1Objekte & das this-Schlüsselwort
Kurze Wiederholung: ObjekteMethoden zu Objekten hinzufügenDas this-Schlüsselwort verstehenKonstruktorfunktionenDas new-SchlüsselwortWiederholungs-Challenge7Vererbung & das extends-Schlüsselwort
VererbungDie „ist-ein“-BeziehungDas extends-SchlüsselwortDie super()-MethodeVererben von Eigenschaften & MethodenWiederholungs-Challenge10Polymorphie
Was ist Polymorphie?Geerbte Methoden überschreibenVerwendung von superWiederholungs-Challenge13Komposition vs. Vererbung
Die "hat-ein"- vs. "ist-ein"-BeziehungDie Grenzen tiefer VererbungObjekte zusammenbauen2Code organisieren
Was sind Module?Exportieren mit exportImportieren mit importDefault- vs. benannte Exports5Kapselung & Zugriff
KapselungÖffentliche & private KlassenfelderPrivate MethodenWiederholungs-Herausforderung8OOP-Code strukturieren
Klassen in Modulen organisieren11Projekt: Ein Shape-Renderer
Setup: Shape-Klasse & ExportCircle-Klasse: Vererbung14Bibliotheksverwaltungssystem
Entwurf der BibliothekBuch-Klasse mit Komposition3Klassen & Objekte
Was ist eine Klasse?Instanzen erstellenEigenschaften und MethodenWiederholungs-Challenge6Projekt: Ein einfaches Bankkonto
Klasse BankAccountEinzahlungen und Auszahlungen9Statische Methoden & Eigenschaften
Klassenebene vs. InstanzebeneStatische EigenschaftenStatische HilfsmethodenWiederholungs-Challenge12Getter & Setter
Die Schlüsselwörter get und setBerechnete EigenschaftenValidierung und SeiteneffekteWiederholungs-Challenge15Abschluss-Herausforderungen
Spielfiguren-BuilderE-Commerce ProduktsystemUniversitäts-VerwaltungssystemSmart-Home-Gerätesystem