目錄
組合
“is-a”關係, 我們可以使用”繼承”; 從而實現子類擁有的父類的方法和屬性; “is-a”關係指的是類似這樣的關係: 狗和動物, dog is animal; 狗類就應該繼承動物類;
“has-a”關係, 我們可以使用”組合”, 也能實現一個類擁有另一個類的方法和屬性; “has-a”關係指的是這樣的關係: 手機擁有cpu, MobilePhone has a CPU;
#測試組合
class A1:
def say(self):
print("A!!!!!")
class B1(A1): #繼承
pass
b1 = B1()
b1.say() #繼承,實現代碼的複用
class A2:
def say(self):
print("A2!!!!!")
class B2():
def __init__(self,a): #組合實現代碼複用,但繼承還有自己的代碼結構,不能取代繼承
self.a = a
a2 = A2()
b2 = B2(a2)
b2.a.say()
輸出:
D:\wwwroot\pyiteam\venv\Scripts\python.exe D:/wwwroot/pyiteam/mypro_obj/mypy02.py
A!!!!!
A2!!!!!
Process finished with exit code 0