多重继承是面向对象编程中的一个概念,指的是一个类可以同时从多个父类中继承属性和方法的能力 1. 单一继承 : 类 B 继承自类 A,表示 B 是 A 的子类,继承了 A 的属性和方法 A | B 2. 多重继承 : 类 C 同时继承自类 A 和 B,表示 C 继承了 A 和 B 的属性和方法 A B \ / C 3. 钻石继承: 类 D 继承自类 B 和 C,而 B 和 C 都继承自类 A。这种继承结构形成了一个钻石形状,称为钻石继承 A / \ B C \ / D 4. 多重继承链: 类 E 继承自类 C 和 D,而 C 和 D 分别继承自 A 和 B。这种继承结构形成了多重继承链 A B / \ / C D \ / E
class Animal: def __init__(self, name): self.name = name def speak(self): raise NotImplementedError("Subclass must implement abstract method") class Dog(Animal): def speak(self): return f"{self.name} says Woof!" class Cat(Animal): def speak(self): return f"{self.name} says Meow!" class DogCat(Dog, Cat): def __init__(self, name): # 多重继承中需要显式调用各个父类的初始化方法 super().__init__(name) # 创建一个 DogCat 实例 my_pet = DogCat("Buddy") # 调用 speak 方法,由于多重继承,遵循 C3 算法的方法解析顺序 print(my_pet.speak()) # 输出: Buddy says Woof! C3 算法: 在调用一个方法时,Python 解释器会按照确定的方法解析顺序,在继承链中逐个查找对应的方法实现, 先子类在父类
多重继承是面向对象编程中的一个重要概念,可以在适当的情况下提供更加灵活和复杂的类层次结构, 但同时需要注意避免出现方法冲突和混乱的继承关系,合理使用多重继承能够有效地提高代码的复用性和灵活性