93. Python 類中的組合

目錄

組合


組合

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


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章