Kurso de Raku / Objektoj, en- kaj eligo kaj escepto / Klasoj kaj objektoj / Heredo / Exercises / Heredita atributo
Solvo: Heredita atributo
Jen ebla solvo de la tasko.
Kodo
class Vehicle {
has $.wheels;
}
class Bike is Vehicle {
has $.wheels = 2;
}
class Car is Vehicle {
has $.wheels = 4;
}
say Bike.new.wheels;
say Car.new.wheels;🦋 Vi povas trovi la fontkodon en la dosiero inherited-attribute.raku.
Eligo
2
4Komentoj
BikekajCarambaŭ heredas la atributonwheels(kaj ĝian atingilon) elVehicle. Neniu el ili redeklaras la atributon de nulo — ili nur donas al la heredita defaŭltan valoron,2kaj4respektive.Ĉar la defaŭlto estas enbakita en ĉiun klason, vi povas krei la objektojn per simpla
Bike.newkajCar.new, kaj la heredita atingilo relegas la ĝustan nombron de radoj.Vi ankoraŭ povas transdoni la valoron eksplicite, ekzemple
Car.new(wheels => 3), kaj eksplicita argumento superregas la defaŭlton. Sed ĉar biciklo aŭ aŭto plej verŝajne jam venas kun sia kutima nombro de radoj, la defaŭltoj tenas la oftan kazon simpla, lasante lokon por la malofta escepto.
Kursa navigado
← Heredita atributo | Roloj →