Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗dtOpIhSp 35 of 113 menu
◀ ▶

Вызов super в Dart

После @override тело родительского метода в потомке не выполняется автоматически. Вызов реализации родителя записывают через super и точку перед именем метода. Сначала зададим метод в родителе:

class Post { int age = 0; void setAge(int age) { if (age >= 0) { this.age = age; } else { print("need age more 0"); } } }

В Employee добавим верхнюю границу, а проверку «не меньше нуля» оставим родителю:

class Employee extends Post { @override void setAge(int age) { if (age <= 120) { super.setAge(age); } else { print("need age less 120"); } } }

Проверка:

var employee = Employee(); employee.setAge(30); print(employee.age);

Дан следующий код:

class Post { int age = 0; void setAge(int age) { if (age >= 0) { this.age = age; } else { print("need age more 0"); } } } class Employee extends Post { @override void setAge(int age) { if (age <= 120) { if (age >= 0) { this.age = age; } else { print("need age more 0"); } } else { print("need age less 120"); } } }

В классе Employee исправьте и упростите сеттер возраста, использовав оригинальный метод родителя через super.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить