Курс по 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 тест върху съдържанието на тази тема.
Навигация в курса
← Интроспекция на обекти | Тест — Интроспекция →
💪 Или преминете направо към упражненията в този
раздел.