Курс Raku / Об’єкти, введення-виведення та винятки / Класи та об’єкти / Інтроспекція об’єктів
Ланцюг успадкування
Коли один клас успадковує від іншого, можна запитати весь ланцюжок
типів, на яких він побудований. Метаметод .^mro повертає
цей ланцюжок; назва походить від method resolution order —
порядку, в якому Raku шукає метод.
class Animal {
}
class Dog is Animal {
}
say Dog.^mro; # ((Dog) (Animal) (Any) (Mu))Читаючи зліва: Dog спершу є сам собою, потім
Animal (його батьком), потім Any та
Mu — двома типами, від яких на самій вершині успадковує
кожен об’єкт Raku. Коли ви викликаєте метод для Dog, Raku
шукає в цьому списку зліва направо й бере перший знайдений відповідний
метод. Саме тому метод дитини перекриває метод батька: дитина стоїть у
ланцюжку раніше.
Для класу без явного батька ланцюжок коротший — лише сам клас, а за
ним Any та Mu.
Практика
Виконайте 1 тест за змістом цієї теми.
Навігація курсом
← Інтроспекція об’єктів | Тест — Інтроспекція →
💪 Або перейдіть одразу до вправ цього
розділу.