继承的分类

分类

python继承不像java使用支持单继承,而python支持单继承、多继承。

单继承

1 class ParentClass:
2     # 父类的属性和方法
3 
4 class ChildClass(ParentClass):
5     # 子类的属性和方法

单继承顾名思义就是子类只有1个父类。示例ChildClass类只有1个父类ParentClass

多继承

class ChildClass(ParentClass1, ParentClass2, ...):
    # 子类的属性和方法

顾名思义就是1个类继承多个父类。子类可以复用父类的属性、方法

复制代码
 1 '''
 2 多重继承:子类可以复用所有父类的属性、方法
 3 '''
 4 
 5 
 6 class Animal:
 7     def __init__(self, name):
 8         self.name = name
 9 
10     def speak(self):
11         print(f"{self.name} is speaking.")
12 
13 
14 class CanFly:
15     def fly(self):
16         print(f"{self.name} is flying.")
17 
18 
19 class CanSwim:
20     def swim(self):
21         print(f"{self.name} is swimming.")
22 
23 
24 class FlyingFish(Animal, CanFly, CanSwim):
25     pass
26 
27 
28 fish = FlyingFish("monkey")
29 fish.speak()  # 输出:monkey is speaking.
30 fish.fly()  # 输出:monkey is flying.
31 fish.swim()  # 输出:monkey is swimming.
复制代码

在上述示例中,AnimalCanFlyCanSwim 是独立的父类,FlyingFish 是同时继承这三个父类的子类。FlyingFish 继承了所有父类的属性和方法,因此可以调用 speak()fly()swim() 方法。

需要注意的是,多继承可能导致复杂性增加,并且需要仔细处理方法冲突等问题。因此,在使用多继承时,应该谨慎考虑继承关系和设计合理的继承结构。

 

posted @   Allen_Hao  阅读(23)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
点击右上角即可分享
微信分享提示