Cursus Raku / Addendum 🆕 / Types en tekstmachines / Objecten en klassen / Exercises / Dieren die praten
Oplossing: Dieren die praten
Hier is een mogelijke oplossing voor de taak.
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;
}🦋 Je kunt de broncode vinden in het bestand animal-inheritance.raku.
Uitvoer
Rex says Woof
Tom says MeowOpmerkingen
greetis één keer in de basisklasse gedefinieerd, maar roeptself.speakaan. Omdatselfhet werkelijke object is, bereikt de aanroep de eigenspeakvan de subklasse.Dat is polymorfisme: dezelfde
greetlevertWoofop voor een hond enMeowvoor een kat, zonder enige voorwaardelijke code.
Cursusnavigatie
← Dieren die praten | Reguliere expressies en grammatica’s →