Raku kurss / Objekti, ievade/izvade un izņēmumi / Klases un objekti / Mantošana
Metožu pārrakstīšana
Bērnklase var nodrošināt savu mantotās metodes versiju. To sauc par pārrakstīšanu. Kad metode tiek izsaukta uz bērnklases objekta, vecākklases versijas vietā izpildās bērnklases versija.
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 un Cat katrs pārraksta
speak. Metode intro, kas mantota no
Animal bez izmaiņām, izsauc self.speak — un
šis izsaukums izmanto to speak, kas pieder īstajam
objektam:
say Dog.new(name => 'Rex').intro; # Rex says Woof
say Cat.new(name => 'Tom').intro; # Tom says MeowTātad viena un tā pati mantotā intro dod dažādus
rezultātus, jo katrs objekts nes savu speak. Šī ir viena no
objektorientētās programmēšanas centrālajām idejām: koplietots kods, kas
pielāgojas tam konkrētajam objekta veidam, ar kuru strādā.
Prakse
Jūs gaida 1 viktorīna par šī temata saturu.
Kursa navigācija
← Mantošana | Viktorīna — Mantošana →
💪 Vai arī dodieties tieši uz šīs sadaļas
vingrinājumiem.