Курс по Raku / Обекти, вход-изход и изключения / Класове и обекти / Наследяване / Exercises / Фигура и квадрат

Решение: Фигура и квадрат

Ето едно възможно решение на задачата.

Код

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

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

say Square.new.describe;

🦋 Намерете програмата във файла shape-and-square.raku.

Изход

I am a square

Коментари

  1. Square наследява describe от Shape и предефинира само name.

  2. describe извиква self.name, който подхваща предефинирания name, така че описанието казва square, а не shape.

Навигация в курса

Фигура и квадрат   |   Наследен атрибут