Raku-Kurs / Anhang 🆕 / Typen und Textmaschinen / Objekte und Klassen / Exercises / Tiere, die sprechen
Lösung: Tiere, die sprechen
Hier ist eine mögliche Lösung der Aufgabe.
Code
class Animal {
has $.name;
method speak { '...' }
method greet { "{$.name} says {self.speak}" }
}
class Dog is Animal { method speak { 'Woof' } }
class Cat is Animal { method speak { 'Meow' } }
for Dog.new(name => 'Rex'), Cat.new(name => 'Tom') -> $pet {
say $pet.greet;
}🦋 Du findest den Quellcode in der Datei animal-inheritance.raku.
Ausgabe
Rex says Woof
Tom says MeowKommentare
greetist einmal in der Basisklasse bestimmt, ruft aberself.speakauf. Weilselfdas tatsächliche Objekt ist, erreicht der Aufruf das eigenespeakder Unterklasse.Das ist Polymorphie: Dasselbe
greeterzeugt für einen HundWoofund für eine KatzeMeow, ganz ohne bedingten Code.
Kursnavigation
← Tiere, die sprechen | Reguläre Ausdrücke und Grammatiken →