繼承作爲面向對象的三大特性之一,爲我們的編程帶來極大的便利,更好地掌握繼承能夠讓我們寫出更加優美簡潔的代碼。本篇博客意在讓讀者瞭解當父類擁有同名方法時,子類繼承方法的規則。首先觀察以下兩個示例:
class A:
def method1(self):
print('A')
class B:
def method1(self):
print('B')
def method2(self):
print('B')
class C:
def method1(self):
print('C')
def method2(self):
print('C')
class D(A,C,B):
pass
d = D()
d.method1()
d.method2()
運行結果
A
C
class A:
def method1(self):
print('A')
class B:
def method1(self):
print('B')
def method2(self):
print('B')
class C:
def method1(self):
print('C')
def method2(self):
print('C')
class D(A,B,C):
pass
d = D()
d.method1()
d.method2()
運行結果
A
B
通過以上兩個示例可以發現,當父類擁有同名方法時,子類中的繼承的方法與繼承時父類的順序有關,並且前一個父類的方法會覆蓋後面父類中的同名方法