Raku-Kurs / Objekte, Ein- und Ausgabe und Ausnahmen / Klassen und Objekte / Vererbung
Methoden überschreiben
Eine Kindklasse kann ihre eigene Fassung einer geerbten Methode anbieten. Das nennt man Überschreiben. Wird die Methode auf einem Objekt der Kindklasse aufgerufen, läuft die Fassung des Kindes statt der des Elternteils.
class Animal {
has $.name;
method speak {
'some sound';
}
method intro {
"$.name says " ~ self.speak;
}
}
class Dog is Animal {
method speak {
'Woof';
}
}
class Cat is Animal {
method speak {
'Meow';
}
}Dog und Cat überschreiben jeweils
speak. Die Methode intro, unverändert von
Animal geerbt, ruft self.speak auf — und
dieser Aufruf verwendet dasjenige speak, das zum
tatsächlichen Objekt gehört:
say Dog.new(name => 'Rex').intro; # Rex says Woof
say Cat.new(name => 'Tom').intro; # Tom says MeowDasselbe geerbte intro liefert also verschiedene
Ergebnisse, weil jedes Objekt sein eigenes speak mitbringt.
Das ist eine der zentralen Ideen der objektorientierten Programmierung:
gemeinsamer Code, der sich an die konkrete Art des Objekts anpasst, mit
dem er arbeitet.
Praxis
Lösen Sie 1 Quiz zum Inhalt dieses Themas.
Kursnavigation
← Vererbung | Quiz — Vererbung →
💪 Oder springen Sie direkt zu den Übungen dieses
Abschnitts.