Переопределение метода в Dart
Потомок может заменить реализацию метода родителя. В потомке пишут
новое тело и помечают метод аннотацией @override перед
объявлением - отдельного ключевого слова override у метода
нет:
class Post {
int age = 0;
void setAge(int age) {
if (age >= 0) {
this.age = age;
}
}
}
В Employee сузим допустимый возраст:
class Employee extends Post {
@override
void setAge(int age) {
if (age >= 18 && age <= 65) {
this.age = age;
}
}
}
При вызове у объекта потомка выполняется версия из Employee:
var employee = Employee();
employee.setAge(25);
print(employee.age);
В классе Post сделайте
геттер и сеттер возраста.
В классе Employee переопределите
сеттер возраста и сделайте в нем
проверку на то, что возраст от
18 до 65 лет.