Raku-Kurs / Objekte, Ein- und Ausgabe und Ausnahmen / Klassen und Objekte / Vererbung / Exercises / Mitarbeiter und Rollen
Lösung: Mitarbeiter und Rollen
Hier ist eine mögliche Lösung der Aufgabe.
Code
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;🦋 Du findest den Quellcode in der Datei dog-and-cat.raku.
Ausgabe
Anna - manager
Bob - internKommentare
ManagerundInternerben das Attributnameund die MethodebadgevonEmployee, keiner von beiden muss diesen Code also wiederholen.Jedes Kind überschreibt
role. Weilbadgeself.roleaufruft, greift es die überschreibende Fassung des tatsächlichen Objekts auf und liefert für den Manager und den Praktikanten ein jeweils anderes Namensschild.Der Name der Methode,
role, ist einfach ein Name. Er fällt allerdings mit dem Schlüsselwortrolezusammen, das später eingeführt wird.