Курс языка программирования Raku / Объекты, ввод-вывод и исключения / Классы и объекты

Наследование

Наследование позволяет одному классу строиться на основе другого. Класс, объявленный с is после имени, наследует атрибуты и методы того класса, который он называет, — своего родительского (или базового) класса.

class Animal {
    has $.name;
    method speak {
        'some sound';
    }
}

class Dog is Animal {
}

Запись Dog is Animal означает, что Dog — это разновидность Animal. Ничего нового не написав, Dog уже имеет атрибут name и метод speak из Animal:

my $rex = Dog.new(name => 'Rex');
say $rex.name;  # Rex
say $rex.speak; # some sound

Объект Dog распознаётся также и как Animal:

say Dog.new ~~ Animal; # True

Умное сопоставление ~~ с типом истинно, когда объект имеет этот тип или наследует от него. Следующая тема показывает, как дочерний класс может заменить унаследованный метод собственной версией.

Ещё в этом разделе

Практика

Пройдите 1 тест по содержанию этого раздела.

Упражнения

В этом разделе 3 упражнения. Прежде чем приступать к практике, изучите все темы раздела.

  1. Сотрудники и роли
  2. Фигура и квадрат
  3. Унаследованный атрибут

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

Тест — Подпрограммы и методы   |   Переопределение методов