Curso de Raku / Objetos, entrada/salida y excepciones / Clases y objetos / Introspección de objetos
La cadena de herencia
Cuando una clase hereda de otra, puedes pedir la cadena completa de
tipos sobre la que está construida. El metamétodo .^mro
devuelve esa cadena; el nombre viene de method resolution
order, el orden en que Raku busca un método.
class Animal {
}
class Dog is Animal {
}
say Dog.^mro; # ((Dog) (Animal) (Any) (Mu))Leyendo de izquierda a derecha: un Dog es primero él
mismo, después un Animal (su padre) y después
Any y Mu, los dos tipos de los que hereda todo
objeto de Raku en la cúspide. Cuando llamas a un método sobre un
Dog, Raku recorre esta lista de izquierda a derecha y usa
el primer método que encuentra. Esa es exactamente la razón de que el
método de una hija sobrescriba el del padre: la hija aparece antes en la
cadena.
Para una clase sin padre explícito la cadena es más corta: solo la
clase misma, seguida de Any y Mu.
Práctica
Resuelve 1 cuestionario sobre el contenido de este tema.
Navegación del curso
← Introspección de objetos | Quiz — Introspección →
💪 O ve directamente a los ejercicios de esta
sección.