Corso di Raku / Oggetti, input/output ed eccezioni / Classi e oggetti / Ereditarietà
Sovrascrivere i metodi
Una classe figlia può fornire una propria versione di un metodo ereditato. Questo si chiama sovrascrittura. Quando il metodo viene chiamato su un oggetto della classe figlia, gira la versione della figlia invece di quella della genitrice.
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 e Cat sovrascrivono ciascuno
speak. Il metodo intro, ereditato immutato da
Animal, chiama self.speak — e quella chiamata
usa lo speak che appartiene all’oggetto vero e proprio:
say Dog.new(name => 'Rex').intro; # Rex says Woof
say Cat.new(name => 'Tom').intro; # Tom says MeowCosì lo stesso intro ereditato produce risultati
diversi, perché ogni oggetto porta con sé il proprio speak.
Questa è una delle idee centrali della programmazione a oggetti: codice
condiviso che si adatta al tipo preciso di oggetto su cui lavora.
Pratica
Risolvi 1 quiz sul contenuto di questo argomento.
Navigazione del corso
← Ereditarietà | Quiz — Ereditarietà →
💪 Oppure vai direttamente agli esercizi di questa
sezione.