Corso di Raku / Oggetti, input/output ed eccezioni / Classi e oggetti / Ereditarietà / Exercises / Una figura e un quadrato

Soluzione: Una figura e un quadrato

Ecco una possibile soluzione del compito.

Codice

class Shape {
    method name {
        'shape';
    }
    method describe {
        'I am a ' ~ self.name;
    }
}

class Square is Shape {
    method name {
        'square';
    }
}

say Square.new.describe;

🦋 Trova il programma nel file shape-and-square.raku.

Output

I am a square

Commenti

  1. Square eredita describe da Shape e sovrascrive soltanto name.

  2. describe chiama self.name, che raccoglie il name sovrascritto, così la descrizione dice square invece di shape.

Una figura e un quadrato   |   Un attributo ereditato