Курс языка программирования 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.

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

Фигура и квадрат   |   Унаследованный атрибут