類a依賴於類b,用由類a指向類b的帶箭頭虛線表示
被關聯類b以類的屬性形式出現在關聯類a中
關聯類a引用了乙個型別為被關聯b的全域性變數
;以空心菱形加實線箭頭表示
;以實心菱形加實線箭頭表示
;oop程式設計思想中,繼承是乙個十分重要的內容。下面介紹幾個 常見的容易混淆的術語。
首先舉例子:
我們常見的動物,羊有很多種類,只是一種泛指,綿羊是其中一種,那麼羊和綿羊的關係,就是is-a,即它們是繼承的關係。
再如,羊身上都有羊毛,而不同種類的羊,羊毛生物形態也不同,比如綿羊和羚羊,前者羊毛豐富、蓬鬆、柔軟,呈白色;後者羊毛稀少、剛硬,呈灰褐色。對於綿羊來說,羊毛和羊的關係就是has-a。對於羚羊也是同理。我們可以根據羊毛的不同,來區別羊的品種。
這種思想在oop上,體現在哪方面呢?答案就是抽象類和介面的關係。
如下圖:
圖1 is-a與has-a之間的關係
可以看到 myclass 繼承自 a,它們是is-a關係。
myclass實現了介面i,它們是has-a關係。
那麼is-a和is-like-a啥關係呢?
同樣,舉例子,如圖:
總結就是:
類與類的關係
首先,允許多層繼承但不允許多重繼承 一繼多 子類本質上是包含了父類的,下面這張從記憶體的角度解釋了這一點 值得一提的是構造它們的時候走建構函式的順序 在構造子類物件的時候要先構造出乙個父類物件,也就是說,先執行父類的無參構造或者系統幫忙新增的無參構造,再走子類的構造。假如父類沒有無參構造卻有有參構造...
類與類關係
表現為繼承或實現關係 is a 具體形式為類與類之間的繼承關係,介面與介面之間的繼承關係,類對介面的實現關係。指的是乙個類 稱為子類 子介面 繼承另外的乙個類 稱為父類 父介面 的功能,並可以增加它自己的新功能的能力,uml中實現用三角形箭頭和實線表示 指的乙個類實現介面 可以是多個 的功能,uml...
類與類之間的關係
uml uml是統一建模語言 為軟體開發提供一些標準的圖例,統一開發思想,從而促進團隊協作 在軟體過程中,會用到uml 分析 設計 編碼 測試 維護 主流的有 rup rational unified process 合理的統一過程 強調軟體開發一開始就要有好的設計 才能有好的設計 xp程式設計 e...