Corso di Raku / Oggetti, input/output ed eccezioni / Classi e oggetti
Ereditarietà
L’ereditarietà permette a una classe di costruire su
un’altra. Una classe dichiarata con is dopo il proprio nome
eredita gli attributi e i metodi della classe che nomina — la sua classe
genitrice (o base).
class Animal {
has $.name;
method speak {
'some sound';
}
}
class Dog is Animal {
}Dog is Animal significa che un Dog è un
tipo di Animal. Senza scrivere nulla di nuovo,
Dog ha già l’attributo name e il metodo
speak di Animal:
my $rex = Dog.new(name => 'Rex');
say $rex.name; # Rex
say $rex.speak; # some soundUn oggetto Dog viene riconosciuto anche come
Animal:
say Dog.new ~~ Animal; # TrueLo smart-match ~~ contro un tipo è vero quando l’oggetto
è di quel tipo o ne eredita. L’argomento successivo mostra come una
classe figlia possa sostituire un metodo ereditato con una versione
propria.
Anche in questa sezione
Pratica
Risolvi 1 quiz sul contenuto di questa sezione.
Esercizi
Questa sezione contiene 3 esercizi. Guarda tutti gli argomenti di questa sezione prima di iniziare gli esercizi.