Требования к выполнению задач
- Все задания требуется выполнять в соответствии с соглашением о написании C# кода.
- Решение должно быть выполнено максимально оптимальным способом, с минимальным количеством выделения памяти (в пределах разумного).
- Срок выполнения: 2 дня
- Результат работы требуется опубликовать в личном Git репозитории.
Задание
Реализовать классы с наследованиями: базовый класс Human, от которого наследуется класс Student и Employee, а от Employee наследуется класс Driver.
+-------+
+---+ HUMAN +-----+
| +-------+ |
v v
+----+----+ +------+-----+
| STUDENT | | EMPLOYEE |
+---------+ +------+-----+
|
v
+---+----+
| DRIVER |
+--------+
Классы содержат поля:
- Human: фамилия, имя, отчество, дата рождения.
- Student: факультет, курс, группа.
- Employee: организация, заработная плата, стаж.
- Driver: марка автомобиля, модель автомобиля.
Запретить возможность создавать класс Human, только наследников.
Для классов реализовать конструктор без параметров, конструктор с параметрами, конструктор копирования, деструктор. При вызове конструкторов/деструктора в консоль должны выводиться соответствующие информационные сообщения.
В теле класса определить методы, которые позволят пользователю:
- Редактировать содержимое каждого из полей.
- Отображать данные класса в удобно читаемом формате.
- Возможность получить количество полных лет.
Функционал программы должен позволять:
- Добавлять информацию о новом человеке.
- Редактировать поля уже имеющейся записи о человеке.
- Удалять информацию о человеке.
- Выводить информацию о человеке в удобно читаемом виде.
- Выводить информацию о всех людях в удобно читаемом виде.