Курс Raku / Об’єкти, введення-виведення та винятки / Класи та об’єкти / Успадкування / Вправи / Фігура і квадрат

Розв’язання: Фігура і квадрат

Ось один із можливих варіантів розв’язання задачі.

Код

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.

Навігація курсом

Фігура і квадрат   |   Успадкований атрибут