首页 > 代码库 > 类的继承---多重继承(两个父类有相同方法名和参数)
类的继承---多重继承(两个父类有相同方法名和参数)
1 # -*-coding:gb2312-*- 2 3 #Function:测试一下多继承 4 5 class A: 6 7 def F1(self): 8 print ‘调用A.F1()‘ 9 10 def F2(self):11 print ‘调用A.F2()‘12 self.F1()13 14 def F3(self):15 print ‘调用A.F3()‘16 self.F1()17 18 19 class B:20 21 def F2(self):22 print ‘调用B.F2()‘23 24 def F3(self):25 print ‘调用B.F3()‘26 27 class C(A, B):28 29 def F4(self):30 print ‘C.F4‘31 self.F2()32 self.F3()33 34 c = C()35 c.F4()
该段程序的含义:
定义类A(包括方法F1、F2、F3,F2和F3分别调用F1),定义类B(包括方法F2、F3)
定义类C(继承自类A和类B),定义方法F4,调用继承的方法F2和F3
运行结果如下:
C.F4
调用A.F2()
调用A.F1()
调用A.F3()
调用A.F1()
第二步:
替换定义类C的继承顺序,即定义如下,其他不变:
class C(B,A):
之后再运行程序,运行结果如下:
C.F4
调用B.F2()
调用B.F3()
说明针对python这样的解释型语言不会预编译,运行时会先去找A的对应函数,如果找到就直接调用A的,否则就去找B的对应函数
而解释型语言(如C++)程序在编译阶段就会报错,不允许这样写
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。