Задачи на ООП в Dart. Часть 5
Пусть класс Employee наследует
от класса User из данного
урока.
Переопределите в классе Employee
конструктор родителя, добавив в него
параметр с возрастом и зарплатой.
Сделайте геттеры для возраста и зарплаты.
Дан следующий код:
class User {
int _age = 0;
void setAge(int age) {
if (age >= 0) _age = age;
else print("need age more 0");
}
}
class Employee extends User {
@override
void setAge(int age) {
if (age <= 120) super.setAge(age);
else print("need age less 120");
}
}
В классе Employee исправьте
упростите сеттер возраста, использовав
оригинальный метод родителя.
Дан следующий класс-родитель:
class User {
String? _name;
String? _surn;
void setName(String name) { _name = name; }
String? getName() => _name;
void setSurn(String surn) { _surn = surn; }
String? getSurn() => _surn;
}
Сделайте класс Employee,
который будет наследовать
от этого родителя.
Создайте объект класса Employee
и вызовите унаследованные
сеттеры и геттеры.
В классе Employee сделайте
следующий метод:
class User {
String? name;
String? surn;
bool _notEmpty(String str) => str.isNotEmpty;
void setName(String name) { if (_notEmpty(name)) this.name = name; }
String? getName() => name;
}
class Employee extends User {
void setSurn(String surn) { if (_notEmpty(surn)) this.surn = surn; }
String? getSurn() => surn;
}
Убедитесь, что код метода приведет к ошибке.
Дан следующий код:
class User {
String? _name;
void setName(String name) { _name = name; }
String? getName() => _name;
}
class Employee extends User {
@override
void setName(String name) {
if (name.isNotEmpty) _name = name; // ошибка: private _name
}
}
в классе потомка переопределяется метод родителя. Исправьте проблемы в этом коде:.
Попробуйте в классе Employee
воспользоваться приватным методом
родителя.
Дан следующий код:
class User {
String? _name;
void setName(String name) { _name = name; }
String? getName() => _name;
}
class Employee extends User {
@override
void setName(String name) {
if (name.isNotEmpty) _name = name; // ошибка: private _name
}
}
Перепишите через защищенное свойство.