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
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: VererbungOverriding & Area-MethodeStatischer Shape-Zähler14Bibliotheksverwaltungssystem
Entwurf der BibliothekBuch-Klasse mit KompositionValidierung der Buchautoren3Klassen & Objekte
Was ist eine Klasse?Instanzen erstellenEigenschaften und MethodenWiederholungs-Challenge6Projekt: Ein einfaches Bankkonto
Klasse BankAccountEinzahlungen und AuszahlungenKontostand als privates Feld9Statische 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