Что такое наследование в Python?
Наследование включено почти во все объектно-ориентированные языки программирования. Наследование Python позволяет нам использовать атрибуты и методы одного класса в другом.
Терминология наследования в Python
- Суперкласс: класс, от которого наследуются атрибуты и методы.
- Подкласс: класс, который наследует атрибуты и методы суперкласса.
- Переопределение метода: переопределение определений методов в подклассе, которые уже определены в суперклассе.
Пример наследования:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def show_name(self):
print(f'Name: {self.name}')
def show_age(self):
print(f'Age: {self.age}')
class Student(Person):
def __init__(self, name, age, course):
super().__init__(name, age)
self.course = course
def show_course(self):
print(f'Course: {self.course}')
vlad = Person(name='Vladislav', age=24)
vlad.show_age()
vlad.show_name()
natali = Student(name='Natali', age=30, course=4)
natali.show_age()
natali.show_name()
natali.show_course()
В этом коде мы определили суперкласс Person, создали некоторые методы. Далее мы создали подкласс, который наследует методы и атрибуты класса Person. Добавили свой метод в подкласс.
Давайте взглянем на результат выполнения:
>>> Age: 24
>>> Name: Vladislav
>>> Age: 30
>>> Name: Natali
>>> Course: 4
Как видите, в классе студента мы воспользовались теми же атрибутами, что мы создали в классе Person. Это и есть наследование.
Также можете почитать про функцию super()