Курс по 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 тест върху съдържанието на тази тема.

Навигация в курса

Интроспекция на обекти   |   Тест — Интроспекция


💪 Или преминете направо към упражненията в този раздел.