类的继承4
"""
1.一个子类可以继承两个父类:并且继承有相应顺序
"""
class father1:
def a(self):
print("f1_a1")
class father2:
def a(self):
print("f1_a1")
class son(father1,father2):
pass
obj=son()
obj.a()
'''
此时调用a方法打印的结果是:f1_a1;原因是因为继承的时候father1写在了father2之前,所以优先找father1下的a方法;
若想先优先找father2下的a方法则只要继承时候先写father2:class son(father2,father1)即可
'''
"""
#2.当继承的父类写在最前面father1,且当父类father1下没有需要调用的方法,则会去父类father1继承的父父类下找,若一直都没有,则会调用写在第二个的father2下方法
"""
class f:
def a(self):
print(f_a1)
class father1(f):
def a1(self):
print("f1_a1")
class father2:
def a(self):
print("f1_a1")
class son(father1,father2):
pass
obj=son()
obj.a()
"""
此处打印的是f_a1,即是从f下调用的方法
"""
"""
3.当继承的第一个类和第二个类有共同的父类,则对象调用方法的时候,先去第一个类下找,找不到则不会去找共同的父类,会找第二个类,第二个类没有才会从第二个类去找共同的父类;
"""
class father0:
def server(self):
#此处的self为对象obj
print(father0_server)
self.client()#此处的self为对象obj,则执行此方法则按照继承顺序先去father1下找
def client(self):
print(father0_client)
class father1:
def client(self):
print(father1_client)
class son(father1,father0):
pass
obj=son() #建立对象obJ
obj.server() #对象调用server方法
"""
当对象obj调用server方法,先到father1下找发现没有,则到father0下找到进行执行server,当执行到self.client()时,对应也是先去father1下
去找发现存在该方法则进行调用,而不是执行father0下的client();此处需要注意
"""
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~