Curso de Raku / Objetos, entrada/salida y excepciones / Clases y objetos / Herencia / Exercises / Empleados y roles
Solución: Empleados y roles
Aquí tienes una posible solución para la tarea.
Código
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;🦋 Puedes encontrar el código fuente en el archivo dog-and-cat.raku.
Salida
Anna - manager
Bob - internComentarios
ManagereInternheredan deEmployeeel atributonamey el métodobadge, así que ninguna de las dos necesita repetir ese código.Cada hija sobrescribe
role. Comobadgellama aself.role, recoge la versión sobrescrita que pertenece al objeto real, dando una credencial distinta para la gerente y para el becario.El nombre del método,
role, es solo un nombre. Pero coincide con la palabra claveroleque se presentará más adelante.