Corso di Raku / Appendice 🆕 / Tipi e macchine per il testo / Oggetti e classi / Exercises / Animali che parlano
Soluzione: Animali che parlano
Ecco una possibile soluzione del compito.
Codice
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;
}🦋 Trova il programma nel file animal-inheritance.raku.
Output
Rex says Woof
Tom says MeowCommenti
greetè definito una volta sola nella classe base, ma chiamaself.speak. Poichéselfè l’oggetto vero e proprio, la chiamata raggiunge lospeakdella sottoclasse.Questa è polimorfia: lo stesso
greetproduceWoofper un cane eMeowper un gatto senza alcun codice condizionale.
Navigazione del corso
← Animali che parlano | Espressioni regolari e grammatiche →