Курс 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. Успадкований атрибут

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

Тест — Підпрограми та методи   |   Перевизначення методів