Kurso de Raku / Objektoj, en- kaj eligo kaj escepto / Klasoj kaj objektoj / Heredo
Superregi metodojn
Ida klaso povas provizi sian propran version de heredita metodo. Tio nomiĝas superregi. Kiam la metodo estas vokata sur objekto de la ida klaso, la versio de la ido ruliĝas anstataŭ tiu de la patro.
class Animal {
has $.name;
method speak {
'some sound';
}
method intro {
"$.name says " ~ self.speak;
}
}
class Dog is Animal {
method speak {
'Woof';
}
}
class Cat is Animal {
method speak {
'Meow';
}
}Dog kaj Cat ĉiu superregas
speak. La metodo intro, heredita senŝanĝe de
Animal, vokas self.speak — kaj tiu voko uzas
tiun speak, kiu apartenas al la efektiva objekto:
say Dog.new(name => 'Rex').intro; # Rex says Woof
say Cat.new(name => 'Tom').intro; # Tom says MeowDo la sama heredita intro produktas malsamajn rezultojn,
ĉar ĉiu objekto alportas sian propran speak. Ĉi tio estas
unu el la centraj ideoj de objekt-orientita programado: kunhavata kodo,
kiu adaptiĝas al la specifa speco de objekto, sur kiu ĝi laboras.
Praktiko
Vin atendas 1 kvizo pri la enhavo de ĉi tiu temo.
Kursa navigado
← Heredo | Kvizo — Heredo →
💪 Aŭ iru rekte al la
ekzercoj de ĉi tiu sekcio.