day5类的多继承

"""
类的多继承:
D里面有参数时,调用D的
当 D 里面没有调用的参数时,到父类里找。D 的父类是 B 和 C,且定义的顺序是 B在左,C在右。继承顺序是从左到右的。
当在B中找到需调用的参数时,就停止。当B中没有时,再到C中找。当B和C都没有时,再到A中找。
"""
# D中有方法或参数可用,调用D
class A:
def __init__(self):
print('A')

class B(A):
def __init__(self):
print('B')

class C(A):
def __init__(self):
print('C')

class D(B, C):
def __init__(self):
print('D')


d = D()


"""
打印结果:
D
"""


# D中没有方法或参数可用,调用父类,父类B中有方法或参数
class A2:
def __init__(self):
print('AA')

class B2(A2):
def __init__(self):
print('BB')

class C2(A2):
def __init__(self):
print('CC')

class D2(B2, C2):
pass


d2 = D2()

"""
打印结果:
BB
"""


# D中没有方法或参数可用,调用父类,父类B中没有方法或参数,调用父类C
class A3:
def __init__(self):
print('AAA')

class B3(A3):
pass

class C3(A3):
def __init__(self):
print('CCC')

class D3(B3, C3):
pass


d3 = D3()

"""
打印结果:
CCC
"""


# D中没有方法或参数可用,调用父类,父类B和C中没有方法或参数,调用B和C的父类A
class A4:
def __init__(self):
print('AAAA')

class B4(A4):
pass

class C4(A4):
pass

class D4(B4, C4):
pass


d4 = D4()

"""
打印结果:
AAAA
"""


# D中没有方法或参数可用,调用父类,父类B和C中没有方法或参数,调用B和C的父类A,父类A也没有方法或参数
class A5:
pass

class B5(A5):
pass

class C5(A5):
pass

class D5(B5, C5):
pass


d5 = D5()

"""
无打印结果
"""



class A():
def say_hi(self):
print("aaaaaa")


class B(A):
a = 1

def say_hi(self):
print("bbbbbb")

def a_say_hi(self):
super().say_hi()

def do_some_thing(self):
self.say_hi()
self.a_say_hi()
self.a += 1


b = B()

b.do_some_thing()
posted @ 2023-03-06 23:53  雪儿来  阅读(5)  评论(0编辑  收藏  举报