Cursus Raku / Objecten, in- en uitvoer en excepties / Klassen en objecten / Objecten introspecteren

De overervingsketen

Wanneer de ene klasse van de andere erft, kun je de hele keten van typen opvragen waarop ze gebouwd is. De metamethode .^mro geeft die keten terug — de naam staat voor method resolution order, de volgorde waarin Raku naar een methode zoekt.

class Animal {
}

class Dog is Animal {
}

say Dog.^mro; # ((Dog) (Animal) (Any) (Mu))

Van links gelezen: een Dog is eerst zichzelf, dan een Animal (zijn ouder), dan Any en Mu — de twee typen waarvan elk Raku-object helemaal bovenaan erft. Wanneer je een methode op een Dog aanroept, doorzoekt Raku deze lijst van links naar rechts en gebruikt het de eerste passende methode die het vindt. Precies daarom overschrijft de methode van een kind die van de ouder: het kind staat eerder in de keten.

Voor een klasse zonder expliciete ouder is de keten korter — alleen de klasse zelf, gevolgd door Any en Mu.

Praktijk

Maak de 1 quiz over de inhoud van dit onderwerp.

Cursusnavigatie

Objecten introspecteren   |   Quiz — Introspectie


💪 Of ga direct naar de oefeningen in deze sectie.