Наследование. Объектно-ориентированное программирование в Python
Python для начинающих » ООП на Python изучить ооп Python, наследование python, ооп python
Наследование в Python является важным фактором для понимания принципа работы ООП. Предположим, у вас есть класс (Пример Class1). При помощи наследования мы можем создать новый класс (Например Class2), в котором будет доступ ко всем атрибутам и методам класса Class1, а также к некоторым атрибутам и методам.
Наследование
# -*- coding: utf-8 -*-
class Class1: # Базовый класс
def f_func1(self):
print "Метод f_func1() класса Class1"
def f_func2(self):
print "Метод f_func2() класса Class1"
class Class2(Class1): # Класс Class2 наследует класс Class1
def f_func3(self):
print "Метод f_func3() класса Class2"
c1 = Class2() # Создаем экземпляр класса Class2
c1.f_func1() # Выведет: Метод f_func1() класса Class1
c1.f_func2() # Выведет: Метод f_func2() класса Class1
c1.f_func3() # Выведет: Метод f_func3() класса Class2
Как видно из примера, класс Class1 указывается внутри круглых скобок в определение класса Class2. Таким образом, класс Class2 наследует все атрибуты и методы класса Class1. Класс Class1 вызывется базовым классом ими суперклассом, а класс Class2 - производным классом или подклассом.
Если имя метода в классе Class2 совпадает с именем метода класса Class1, то будет использоваться метод из класса Class2. Чтобы вызвать одноименный метод из базового класса, следует указать перед методом название базового класса. Кроме того, в первом параметре метода необходимо явно указать ссылку на экземпляр класса. Рассмотрим это на примере:
Переопределение метода
class Class1: # Базовый класс
def __init__(self):
print "Конструктор базового класса"
def f_func1(self):
print "Метод f_func1() класса Class1"
class Class2(Class1): # Класс Class2 наследует класс Class1
def __init__(self):
print "Конструктор производного класса"
Class1.__init__(self) # Вызываем конструктор базового класса
def f_func1(self):
print "Метод f_func1() класса Class2"
Class1.f_func1(self) # Вызываем метод базового класса
c1 = Class2() # Создаем экземпляр класса Class2
c1.f_func1() # Вызываем метод f_func1()
Результат работы
Конструктор производного класса Конструктор базового класса Метод f_func1() класса Class2 Метод f_func1() класса Class1После работы хочется немного отдохнуть и расслабится в любимую онлайн игру. Но, со временем игры надоедают своим сюжетом и теряется прежний адреналин и азарт. Хорошая игра рулетка в http://casino-cristal.com играя онлайн, можно разрабатывать собственные стратегии игры и начать зарабатывать по взрослому реальные деньги.