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