Corso di Raku / Oggetti, input/output ed eccezioni / Classi e oggetti / Ereditarietà / Exercises / Un attributo ereditato
Soluzione: Un attributo ereditato
Ecco una possibile soluzione del compito.
Codice
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;🦋 Trova il programma nel file inherited-attribute.raku.
Output
2
4Commenti
BikeeCarereditano entrambe daVehiclel’attributowheels(e il suo accessore). Nessuna delle due ridichiara l’attributo da zero: gli danno solo un valore predefinito, rispettivamente2e4.Poiché il valore predefinito è incorporato in ciascuna classe, puoi creare gli oggetti con un semplice
Bike.neweCar.new, e l’accessore ereditato rilegge il numero giusto di ruote.Puoi comunque passare il valore esplicitamente, per esempio
Car.new(wheels => 3), e un argomento esplicito scavalca il valore predefinito. Ma poiché una bici o un’auto arrivano molto probabilmente già con il loro numero abituale di ruote, i valori predefiniti tengono semplice il caso comune lasciando spazio all’eccezione occasionale.
Navigazione del corso
← Un attributo ereditato | Ruoli →