Geerbte Methoden überschreiben
Teil des Abschnitts Objektorientierte Programmierung der JavaScript-Journey von Coddy — Lektion 36 von 56.
Method Overriding (Methoden-Überschreiben) tritt auf, wenn eine Kindklasse eine eigene Implementierung einer Methode bereitstellt, die sie von einer Elternklasse geerbt hat. Die Version der Kindklasse „überschreibt“ (ersetzt) die Version der Elternklasse.
Einfaches Beispiel:
Erstellen Sie eine Basisklasse mit einer Methode:
class Vehicle {
start() {
return "Vehicle starting...";
}
}Erstellen Sie eine Kind-Klasse, die die Eltern-Klasse erweitert:
class Car extends Vehicle {
// Dies ÜBERSCHREIBT die start()-Methode von Vehicle
start() {
return "Car engine roaring to life!";
}
}Verwenden Sie die Klassen:
const vehicle = new Vehicle();
const car = new Car();
console.log(vehicle.start()); // "Vehicle starting..." (Original)
console.log(car.start()); // "Car engine roaring to life!" (überschrieben)Wichtige Regeln für das Überschreiben:
- Gleicher Methodenname wie beim Parent
- Gleiche oder kompatible Parameter
- Die Version des Kind-Objekts wird aufgerufen bei Kind-Objekten
- Keine speziellen Schlüsselwörter erforderlich – definieren Sie einfach die Methode
Aufgabe
Dir ist eine Elternklasse Shape und eine Kindklasse Circle gegeben. Die Elternklasse verfügt über eine Methode calculateArea(), die 0 zurückgibt.
Deine Aufgabe ist es, die Methode calculateArea() in der Klasse Circle zu überschreiben, um den tatsächlichen Flächeninhalt eines Kreises zu berechnen.
Die Formel für den Kreisinhalt lautet: π × radius²
In JavaScript: Math.PI * this.radius * this.radius
Probier es selbst
import { Shape } from './shapes.js';
import { Circle } from './shapes.js';
// Teste deine Implementierung
const myCircle = new Circle(5);
console.log(myCircle.calculateArea());
Diese 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