Основная идея наследования в объектно-ориентированном программировании заключается в том, что класс может наследовать характеристики другого класса. Класс, который наследует другой класс, называется дочерним классом или производным классом, и класс, который дает наследие, называется родительским, или основным.

# Создание класса Vehicle
class Vehicle:  
    def vehicle_method(self):
        print("Это родительский метод из класса Vehicle")

# Создание класса Car, который наследует Vehicle
class Car(Vehicle):  
    def car_method(self):
        print("Это метод из дочернего класса")

car_a = Car()  
car_a.vehicle_method() #Это родительский метод из класса Vehicle
car_a.car_method() #Это метод из дочернего класса     

В Python, родительский класс может иметь несколько дочерних, и, аналогично, дочерний класс может иметь несколько родительских классов. Давайте рассмотрим первый сценарий. Выполним следующий скрипт:

# создаем класс Vehicle
class Vehicle:  
    def vehicle_method(self):
        print("Это родительский метод из класса Vehicle")

# создаем класс Car, который наследует Vehicle
class Car(Vehicle):  
    def car_method(self):
        print("Это дочерний метод из класса Car")

# создаем класс Cycle, который наследует Vehicle
class Cycle(Vehicle):  
    def cycleMethod(self):
        print("Это дочерний метод из класса Cycle")

car_a = Car()  
car_a.vehicle_method() #Это родительский метод из класса Vehicle
car_a.car_method() #Это метод из дочернего класса Car
car_a = Cycle()  
car_a.vehicle_method() #Это родительский метод из класса Vehicle
car_a.cycleMethod() #Это метод из дочернего класса Cycle      

Таким же образом, дочерний класс может иметь несколько родительских. Посмотрим на пример:

class Camera:  
    def camera_method(self):
        print("Это родительский метод из класса Camera")
class Radio:  
    def radio_method(self):
        print("Это родительский метод из класса Radio")
class CellPhone(Camera, Radio):  
     def cell_phone_method(self):
        print("Это дочерний метод из класса CellPhone")

cell_phone_a = CellPhone()  
cell_phone_a.camera_method() #Это родительский метод из класса Camera  
cell_phone_a.radio_method() #Это родительский метод из класса Radio
cell_phone_a.cell_phone_method() #Это дочерний метод из класса CellPhone