Задачи на ООП в Python. Часть 6
Дан следующий код:
class User:
def __init__(self):
self.name = None
def setName(self, name):
if self.notEmpty(name):
self.name = name
def getName(self):
return self.name
def notEmpty(self, text):
return len(text) > 0
class Employee(User):
def __init__(self):
super().__init__()
self.surn = None
def setSurn(self, surn):
if self.notEmpty(surn):
self.surn = surn
def getSurn(self):
return self.surn
Сделайте вспомогательный метод notEmpty
защищенным (переименуйте в _notEmpty)
и поправьте все его вызовы.
Сделайте абстрактный класс Figure
(наследник ABC из модуля abc)
с абстрактными методами getSquare
и getPerimeter.
Сделайте класс Quadrate, наследующий
Figure. В __init__ принимайте
сторону квадрата. Реализуйте методы площади
и периметра.
Сделайте класс Rectangle, наследующий
Figure. В __init__ принимайте
ширину и высоту. Реализуйте методы площади
и периметра.
Сделайте класс Circle, наследующий
Figure. В __init__ принимайте
радиус. Реализуйте методы площади и длины
окружности (как периметра).
Создайте объекты квадрата, прямоугольника и круга. Выведите их площади и периметры.
Попробуйте создать объект абстрактного
класса Figure. Что произойдет?
Сделайте абстрактный класс User
с абстрактным методом increaseRevenue.
Сделайте классы Employee и Student,
наследующие User. В Employee
метод пусть увеличивает зарплату, а в
Student — стипендию.
Создайте объекты работника и студента,
вызовите increaseRevenue и выведите
новые значения дохода.