Курс языка программирования 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 упражнения. Прежде чем приступать к практике, изучите все темы раздела.