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

Конструктор при наследовании в ООП в Python

При наследовании можно переопределять конструктор родителя. Давайте посмотрим на примере. Пусть у нас есть следующий класс родителя:

class User: def __init__(self, name, surn): self.__name = name self.__surn = surn def get_name(self): return self.__name def get_surn(self): return self.__surn

Пусть от родительского класса наследует следующий класс:

class Student(User): pass

Пусть мы хотим в классе-потомке расширить конструктор, добавив в него дополнительные параметры:

class Student(User): def __init__(self, name, surn, year): pass

В этом случае нам обязательно нужно первой строкой вызвать конструктор родителя через super().__init__:

class Student(User): def __init__(self, name, surn, year): super().__init__(name, surn)

Вызов super().__init__ по сути является конструктором родителя. Поэтому передадим в него требуемые параметры:

class Student(User): def __init__(self, name, surn, year): super().__init__(name, surn)

Теперь в потомке год обучения запишем в свое свойство потомка:

class Student(User): def __init__(self, name, surn, year): super().__init__(name, surn) self.__year = year

Сделаем геттер для года обучения:

class Student(User): def __init__(self, name, surn, year): super().__init__(name, surn) self.__year = year def get_year(self): return self.__year

Пусть класс Employee наследует от класса User из данного урока.

Переопределите в классе Employee конструктор родителя, добавив в него параметр с возрастом и зарплатой.

Сделайте геттеры для возраста и зарплаты.

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