Raku-Kurs / Objekte, Ein- und Ausgabe und Ausnahmen / Klassen und Objekte / Objekte introspizieren

Die Vererbungskette

Wenn eine Klasse von einer anderen erbt, können Sie nach der gesamten Kette der Typen fragen, auf denen sie aufbaut. Die Metamethode .^mro liefert diese Kette — der Name steht für method resolution order, die Reihenfolge, in der Raku nach einer Methode sucht.

class Animal {
}

class Dog is Animal {
}

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

Von links gelesen: Ein Dog ist zuerst er selbst, dann ein Animal (sein Elternteil), dann Any und Mu — die beiden Typen, von denen ganz oben jedes Raku-Objekt erbt. Wenn Sie eine Methode auf einem Dog aufrufen, durchsucht Raku diese Liste von links nach rechts und nimmt die erste passende Methode, die es findet. Genau deshalb überschreibt die Methode eines Kindes die des Elternteils: Das Kind steht früher in der Kette.

Für eine Klasse ohne ausdrücklichen Elternteil ist die Kette kürzer — nur die Klasse selbst, gefolgt von Any und Mu.

Praxis

Lösen Sie 1 Quiz zum Inhalt dieses Themas.

Kursnavigation

Objekte introspizieren   |   Quiz — Introspektion


💪 Oder springen Sie direkt zu den Übungen dieses Abschnitts.