Наследование: наследование позволяет нам определить класс, который наследует все методы и свойства другого класса. Родительский класс — это наследуемый класс, также называемый базовым классом
. Дочерний класс — это класс, который наследуется от другого класса, также называемого производным классом.
Типы наследования:
- Одиночное наследование
- Многоуровневое наследование
- Множественное наследование
- Многопутевое наследование
- Иерархическое наследование
- Гибридное наследование
Множественное наследование: Множественное наследование — это особенность некоторых объектно-ориентированных языков программирования, в которых объект или класс могут наследовать характеристики и возможности более чем одного родительского объекта или родительского класса
.
Синтаксис множественного наследования:
Класс Ba se1: Тело класса
Класс Base2: Тело класса
Класс, производный (Base1, Base2): Тело класса
Некоторые примеры множественного наследования
# Множественное наследование с использованием два класса: class Отец (): def Вождение (сам): print («Отец любит водить») class Mother (): def Кулинария (сам): print («Мать любит готовить») class Ребенок (Отец, Мать): def Игра (сам): print («Ребенок любит играть») c = Ребенок () c. Вождение () c. Готовка () c.Игра ()
Пояснение к коду:
Здесь отец и мать являются базовыми классами, где у нас есть два оператора печати и дочерний класс, содержащий все методы класса отца и матери.
Дочерний класс также известен как производный класс.
Мы создаем объект для дочернего класса, с помощью которого мы можем доступ к функциям отца, матери и ребенка.
# Создание множественного наследования с использованием более двух классов. class Car (): def Benz (self): print ("Это автомобиль Benz") class Bike (): def Bmw (self): print ("This это велосипед BMW ") class Bus (): def Volvo (self): print (" Это автобус Volvo ") class Truck (): def Eicher (self): print (" This is a Eicher Truck ") class Plane (): def Indigo (self): print («Это самолет Индиго») class Transport (Car, Bike, Bus, Truck, Plane): def Main (self): print («Это основной класс») B = Транспорт () Б. Бенз () B.Bmw () Б. Вольво () Б. Эйхер () Б.Индиго () Б. Главное ()
Объяснение кода:
Здесь у нас есть четыре класса с именами: Автомобиль, Велосипед, Автобус, Грузовик, Планета, которые называются базовыми классами. У нас также есть один производный класс Transport, который будет содержать все данные автомобиля, велосипеда, грузовика, самолета и транспорта.
Итак, вот почему мы будем создавать объект для производного класса, то есть Transportthrough, через который мы можем получить доступ ко всем данным базового и производного классов.
# Выполнение сложения, умножения, деления с использованием множественного наследования. a, b): вернуть a + b; class Calculation2: def Умножение (self, a, b): return a * b; class Derived (Calculation1, Calculation2): def Divide (self, a, b): return a/b; d = Derived () print (d.Sumutation (1,2)) print (d.Multiplication (1,2)) print (d.Divide (1,2))
Объяснение кода :
Здесь, в приведенной выше программе, у нас есть три класса. Класс с Calculation1 и Calculation2 — это базовые классы
, а класс с именем Derived
— это комбинация классов Calculation1 и Calculation2.
Класс Calculation1 выполняет арифметическую операцию, а Calculation2 выполняет операцию умножения.
Теперь в классе Derived у нас есть и операция сложения, и операция умножения вместе с собственной операцией деления.
Вот как мы реализуем множественное наследование с использованием базовых и производных классов.
# здесь начинается определение класса class Cars: # определение конструктора def __init __ (self, CarName, CarModel): self.name = CarName self.model = CarModel # определение методов класса def showName (self): print (self. name) def showModel (self): print (self.Model) # конец определения класса # определение идентификаторов другого класса: def __init __ (self, CarId): self.CarId = CarId def getId (self): return self.CarId class Main (Cars, Ids): # расширяет классы Cars и Ids def __init __ (self, name, model, id): Cars .__ init __ (self, name, model) Ids .__ init __ (self, id) # Создайте объект подкласс Main1 = Main ('Swift', 500, '1') Main1.showName () print (Main1.getId ())
v>
Объяснение кода:
Классы Cars и Ids являются суперклассом, а Main — подклассом. Класс Main расширяет как Cars, так и Ids, чтобы наследовать свойства обоих классов. Пример легко понять, если вы знакомы с классами Python и наследованием Python.
# Пример множественного наследования `class Student1: def __init __ (self): self.name = 'Nani' self.age = 19 def getName (self): return self.name class Student2: def __init __ (self): self.name = 'Ram' self.id = '15' def getName (self): return self.name class Student (Student1, Student2): def __init __ (self): Student1 .__ init __ (self) Student2 .__ init __ (self) def getName (self): return self.name Студенты1 = Студенты () print (Students1.getName ())
Плюсы и минусы множественного наследования значение:
Плюсы:
-
Это позволяет классу унаследовать функциональность более чем одного базового класса; тем самым позволяя моделировать сложные отношения.
-
Вы классифицируете классы по-разному. Множественное наследование — это способ показать нашу естественную склонность к организации мира. Например, во время анализа мы используем множественное наследование, чтобы зафиксировать способ, которым пользователи классифицируют объекты.
-
Имея несколько суперклассов, ваш подкласс имеет больше возможностей для
повторно использовать
унаследованные атрибуты и операции суперклассов. -
Время разработки приложения меньше, а приложение занимает меньше памяти.
Минусы:
-
Это может привести к большой путанице, когда два базовых класса реализуют метод с тем же именем.
-
Чем больше суперклассов наследует ваш подкласс, тем больше обслуживания вы, вероятно, будете выполнять. Если произойдет изменение одного из суперклассов, возможно, придется изменить и подкласс.
Примеры множественного наследования в реальном времени:
- Сохранение данных учащегося .
- Заполнение налогов и применение вычетов.
Заключение: Надеюсь, вы получили четкое представление о том, что происходит под капотом и как вы можете воспользоваться преимуществом множественного наследования в своей программе и повседневной жизни.