Условие:
Напиши программу на Python.
Человек и Дом
Есть Человек, характеристиками которого являются: имя, возраст, наличие
денег, наличие собственного жилья. Человек может предоставить
информацию о себе, заработать деньги, купить дом.
Также есть Дом, свойства которого – площадь и стоимость. Для дома можно
применить скидку на покупку. Также есть Небольшой Типовой Дом,
обязательной площадью 40 кв. м.
Напишите программу на языке программирования Python, которая
реализует классы Human, House и SmallHouse.
Класс Human имеет два статических поля defaultname и defaultage.
Создайте метод init(), который принимает два параметра name и age.
Для этих параметров задайте значения по умолчанию, используя свойства
defaultname и defaultage. В методе init() определите четыре свойства:
публичные name и age, приватные money и house.
Реализуйте справочный метод defaultinfo(), который будет выводить
статические поля defaultname и defaultage.
Реализуйте приватный метод makedeal(), который будет отвечать за
техническую реализацию покупки дома: уменьшать количество денег на
счету и присваивать ссылку на только что купленный дом. В качестве
аргументов данный метод принимает объект дома и его цену.
Реализуйте метод earnmoney(), увеличивающий значение свойства money.
Реализуйте метод buyhouse(), который будет проверять, что у человека
достаточно денег для покупки, и совершать сделку. Если денег
недостаточно – нужно вывести предупреждение. Параметры метода: ссылка
на дом и размер скидки.
Класс House:
Создайте метод init() и определите внутри него два динамических
свойства area и price. Свои начальные значения они получают из
параметров метода init().
Создайте метод finalprice(), который принимает в качестве параметра
размер скидки и возвращает цену с учетом данной скидки.
Класс SmallHouse наследует функционал от класса House. Внутри класса
SmallHouse переопределите метод init() так, чтобы он создавал объект
с площадью 40 м2.
