
“has a”代表的是對象和它的成員的從屬關(guān)系。同一種類的對象,通過它們的屬性的不同值來區(qū)別。比如一臺PC機的操作系統(tǒng)是Windows,另一臺PC機的操作系統(tǒng)是Linux。操作系統(tǒng)是PC機的一個成員變量,根據(jù)這一成員變量的不同值,可以區(qū)分不同的PC機對象。
再比如張三和李四都是人,但他們的名字不一樣,可以以此區(qū)分這兩個具體的人。名字應(yīng)該作為人的成員變量。如果將名字叫“張三”的人和名字叫“李四”的人分別定義成兩個類,均繼承“人”這個類,顯然是不合理的。

is a 的意識是如果A是B,那么B就是A的基類。比如:等邊三角形是使是三角形,那么,三角形就是等邊三角形的基類。
has a 是如果A中有B,那么,B就是A的組成部分
如果你確定兩件對象之間是is-a的關(guān)系,那么此時你應(yīng)該使用繼承;比如菱形、圓形和方形都是形狀的一種,那么他們都應(yīng)該從形狀類繼承而不是聚合。
如果你確定兩件對象之間是has-a的關(guān)系,那么此時你應(yīng)該使用聚合;比如電腦是由顯示器、CPU、硬盤等組成的,那么你應(yīng)該把顯示器、CPU、硬盤這些類聚合成電腦類,而不是從電腦類繼承。
網(wǎng)頁標題:is-a和has-a的區(qū)別-創(chuàng)新互聯(lián)
網(wǎng)站路徑:http://www.chinadenli.net/article28/djdejp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣、域名注冊、手機網(wǎng)站建設(shè)、企業(yè)建站、小程序開發(fā)、網(wǎng)頁設(shè)計公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容