Corso di Raku / Oggetti, input/output ed eccezioni / Classi e oggetti / Ereditarietà / Exercises / Dipendenti e ruoli
Soluzione: Dipendenti e ruoli
Ecco una possibile soluzione del compito.
Codice
class Employee {
has $.name;
method role {
'staff';
}
method badge {
"$.name - " ~ self.role;
}
}
class Manager is Employee {
method role { 'manager' }
}
class Intern is Employee {
method role { 'intern' }
}
say Manager.new(name => 'Anna').badge;
say Intern.new(name => 'Bob').badge;🦋 Trova il programma nel file dog-and-cat.raku.
Output
Anna - manager
Bob - internCommenti
ManagereInternereditano daEmployeel’attributonamee il metodobadge, quindi nessuno dei due deve ripetere quel codice.Ciascuna figlia sovrascrive
role. Poichébadgechiamaself.role, raccoglie la versione sovrascritta che appartiene all’oggetto vero e proprio, dando un badge diverso per la manager e per lo stagista.Il nome del metodo,
role, è solo un nome. Ma coincide con la parola chiaveroleche verrà introdotta più avanti.