Python - это объектно-ориентированный язык программирования. На объектно-ориентированном языке программирования мы создаем классы и выполняем намеченные функции. Наследование - фундаментальная особенность объектно-ориентированных языков программирования. Наследование можно определить как способность одного класса наследовать все функции и свойства другого класса. Наследование по существу позволяет расширить свойства существующего класса. Наследование основано на двух основных концепциях:
- Родительский класс или базовый класс
- Дочерний класс или производный класс
Родительский класс - это класс, который позволяет наследовать другим классам от. Его также называют базовым классом. Дочерний класс или производный класс - это тот класс, который наследует все свойства и функции другого класса. Наследование дает несколько преимуществ, я.е., это представление реального феномена наследования. Это поощряет повторное использование кода. Если функция определена в одном классе, другой класс может унаследовать этот класс и использовать все существующие функции. Нет необходимости писать один и тот же код снова и снова для выполнения аналогичных задач. Наследование применяется на нескольких уровнях. Например, если класс B наследуется от класса A, а класс C наследуется от класса B, тогда класс C имеет все свойства класса B, а также класса A. Синтаксис наследования следующий:
Класс ParentClass:Детали реализации родительского класса
класс ChildClass:
Детали реализации дочернего класса
Хотя дочерний класс имеет доступ ко всем функциям и функциям родительского класса, он также может добавлять свои новые функции и возможности.
В этой статье описаны и рассмотрены все аспекты наследования Python.
Реализация наследования в Python
Наследование может применяться во многих ситуациях. Предположим, вы создаете программную систему для университета. Он может состоять из нескольких заинтересованных сторон, таких как студенты, учителя, сотрудники и т. Д. Итак, у каждого человека есть имя, возраст, адрес электронной почты и другие общие свойства. Необязательно объявлять все свойства в каждом классе отдельно. Мы можем создать класс человека, и все классы заинтересованных сторон могут унаследовать все общие свойства и функции от класса человека. В этом случае нет необходимости снова и снова писать общие свойства в каждом классе. Точно так же мы можем рассматривать класс животных. В этом мире есть сотни видов животных. Все животные едят, спят, а также имеют некоторые виды. Эту концепцию также можно реализовать с помощью наследования.
Рассмотрим животное как суперкласс и реализуем наследование. В приведенном ниже примере мы создали один класс животных. Класс животных - это родительский класс. Кроме того, мы создали классы Dog и Cat, которые наследуют свойства и функции класса Animal. Ключевое слово pass используется в дочернем классе, когда нам не нужно реализовывать какие-либо расширенные функции в дочернем классе.
# создание родительского классакласс Animal:
#initialization function
#initilization имя животного и вид вида
def __init __ (я, имя, вид_типа):
себя.name = имя
себя.specie_type = specie_type
# функция для вывода имени животного
def printname (self):
print ("Имя животного:", self.название)
# функция для печати вида животных
def printspecie (self):
print ("Тип вида:", self.specie_type)
# создание класса собак как дочернего класса класса животных
класс Dog (Животное):
# без расширения или модификации
проходить
# Теперь класс собак имеет доступ ко всем функциям и свойствам класса животных
# создание объекта класса dog
dogObj = Собака ("Собака", "плотоядное животное")
dogObj.printname ()
dogObj.printspecie ()
# создание класса кота как дочернего класса класса животных
класс Cat (Животное):
# функция инициализации класса cat
def __init __ (сам):
# вызов и использование функции инициализации класса животных
Животное.__init __ (я, «кот», «хищное млекопитающее»)
# Теперь класс кошек имеет доступ ко всем функциям и свойствам класса животных
# создание объекта класса cat
catObj = Кот ()
catObj.printname ()
catObj.printspecie ()
Выход
В «Животное.__init __ (я, «кошка», «плотоядное млекопитающее») » вызвать функцию инициализации класса Animal.
Функция super ()
Python предоставляет встроенную функцию super () для наследования всех свойств и функций родительского класса. Когда мы используем функцию super (), тогда нет необходимости упоминать имя родительского класса, как мы это делали в «Животное.__init __ (я, «кошка», «плотоядное млекопитающее») » но функция super () автоматически указывает на родительский класс. Воспользуемся супер функцией.
# создание родительского классакласс Animal:
#initialization function
#initilization имя животного и вид вида
def __init __ (я, имя, вид_типа):
себя.name = имя
себя.specie_type = specie_type
# функция для вывода имени животного
def printname (self):
print ("Имя животного:", self.название)
# функция для печати вида животных
def printspecie (self):
print ("Тип вида:", self.specie_type)
# создание класса собак как дочернего класса класса животных
класс Dog (Животное):
# используя функцию super ()
def __init __ (я, имя, вид_типа):
супер().__init __ (имя, вид_типа)
# Теперь класс собак имеет доступ ко всем функциям и свойствам класса животных
# создание объекта класса собака
dogObj = Собака ("Собака", "плотоядное животное")
dogObj.printname ()
dogObj.printspecie ()
# создание класса кота как дочернего класса класса животных
класс Cat (Животное):
# функция инициализации класса cat
# используя функцию super ()
def __init __ (я, имя, вид_типа):
супер().__init __ (имя, вид_типа)
# Теперь класс кошек имеет доступ ко всем функциям и свойствам класса животных
# создание объекта класса cat
catObj = Cat («кошка», «плотоядное млекопитающее»)
catObj.printname ()
catObj.printspecie ()
Выход
Теперь давайте добавим еще несколько функций в дочерние классы. Каждый класс наследует общие свойства и функции родительского класса, но дочерний класс может иметь дополнительный класс, предназначенный для этого конкретного класса. Теперь давайте создадим дополнительные свойства и функции в классе dog и cat.
# создание родительского классакласс Animal:
#initialization function
#initilization имя животного и вид вида
def __init __ (я, имя, вид_типа):
себя.name = имя
себя.specie_type = specie_type
# функция для вывода имени животного
def printname (self):
print ("Имя животного:", self.название)
# функция для печати вида животных
def printspecie (self):
print ("Тип вида:", self.specie_type)
# создание класса собак как дочернего класса класса животных
класс Dog (Животное):
# используя функцию super ()
#pet name - это недавно добавленная функциональность
def __init __ (я, имя, specie_type, pet_name):
супер().__init __ (имя, вид_типа)
себя.pet_name = pet_name
# создание новой функции
def printpetname (self):
print ("Имя питомца:", self.имя питомца)
# Теперь класс собак имеет доступ ко всем функциям и свойствам класса животных
# создание объекта класса dog
dogObj = Dog («Собака», «плотоядное животное», «Макс»)
dogObj.printname ()
dogObj.printspecie ()
dogObj.printpetname ()
# создание класса кота как дочернего класса класса животных
класс Cat (Животное):
# функция инициализации класса cat
# используя функцию super ()
#adding свойств food и pet_name
def __init __ (self, name, specie_type, food, pet_name):
супер().__init __ (имя, вид_типа)
себя.food = еда
себя.pet_name = pet_name
# новая функция для доступа к информации о еде
def printfood (сам):
print ("Кошке нравится:", self.еда)
# новая функция для имени питомца
def printpetname (self):
print ("Имя питомца:", self.имя питомца)
# Теперь класс кошек имеет доступ ко всем функциям и свойствам класса животных
# создание объекта класса cat
catObj = Cat («кот», «плотоядное млекопитающее», «Бисквит», «Маргаритка»)
catObj.printname ()
catObj.printspecie ()
Выход
Функции, преобладающие
Переопределение функции - важная концепция наследования. Функция называется переопределенной функцией, если имя функции одинаково в родительском и дочернем классах, но реализация или функциональные возможности функции различаются в каждом классе. Давайте посмотрим на пример переопределенной функции в классе Animal. В приведенном ниже примере у нас есть функция еды в классах животных и в его дочерних классах (Dog и Cat). Имя функции в классах такое же, но реализация другая.
# создание родительского классакласс Animal:
def eat (self):
print («Все животные едят еду»)
# создание объекта
animalObj = Животное ()
#calling function
animalObj.есть()
# создание класса собак
класс Dog (Животное):
def eat (self):
print («Собака ест мясо»)
# создание объекта
dogObj = Собака ()
#calling function
dogObj.есть()
класс Cat (Животное):
def eat (self):
print («Кот ест печенье и какую-то специальную еду»)
# создание объекта
catObj = Кот ()
#calling function
catObj.есть()
Выход
Заключение
Наследование - одна из фундаментальных концепций объектно-ориентированных языков программирования. Используя наследование, мы создаем дочерние классы, которые наследуют все функции и свойства родительского класса. Наследование способствует повторному использованию кода. В этой статье объясняется наследование в Python с примерами.