Geerbte Methoden überschreiben
Teil des Abschnitts Objektorientierte Programmierung der JavaScript-Journey von Coddy. Lektion 36 von 56.
Methodenüberschreibung liegt vor, wenn eine Kindklasse ihre 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 wird eine übergeordnete Klasse Shape und eine untergeordnete Klasse Circle gegeben. Die übergeordnete Klasse verfügt über eine calculateArea()-Methode, die 0 zurückgibt.
Deine Aufgabe besteht darin, die calculateArea()-Methode in der Klasse Circle zu überschreiben, um die tatsächliche Fläche eines Kreises zu berechnen.
Die Formel für die Kreisfläche 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Übe selbstständig: Online-JavaScript-Compiler