討論 使用骨架實現類後子類是否還要實現介面

2021-08-30 01:11:54 字數 1026 閱讀 7815

這裡要討論的是,介面、抽象類、普通類 三者的乙個組合:

首先是,介面定義了功能性的方法;

然後,乙個抽象類實現了這個介面,作為骨架實現類,它完成了介面的一部分實現(預設實現)

最後是乙個普通類,繼承自這個抽象的股價實現類,並完成了抽象類中未實現的方法。

介面:

public inte***ce 交通運輸able
抽象類:

public class 卡車 implements 交通運輸able  

}

子類:

public class 某型號卡車 extends  卡車  

public void 卸貨()

}

以上是我給出的**。

現在要考慮(或者說猶豫、疑惑)的地方是在 子類 的定義中,是否還要明示 實現 介面 ?

public class 某型號卡車 extends 卡車 implements 交通運輸able {
開始我的想法是,不需要 的。因為:

1)作為父類的那個抽象類已經實現了介面,子類自然就已經實現了。

2)如果我只將這個抽象類類對外開放(允許他人擴充套件自己的各種卡車去)的話,可以把 介面 作為「包級私有」類封裝起來。這樣可以很方便日後為介面增加新的方法,只要確保新增的方法,在抽象類中都提供預設實現就可以了。

而如果向上一行這樣使子類也明示實現介面的話,就需要將介面公有化。那麼日後就沒法增加新方法了。(因為你不知道已經有多少人實現了這個介面,你一增加新方法,他們必須相應地增加實現)

似乎在「子類中也明示實現介面」是對自己的禁錮。但是,我之所以要發這個帖子請大家討論的原因是,我看了 list、abstractlist、arraylist 這三個原始碼。

恰恰在 abstractlist 已經實現了 list 介面的情況下,其子類 arraylist  仍然明示的實現了 list 介面。我不知道這是一種嚴謹的做事風格呢?還是作者出於對自己的充分自信呢(list介面日後肯定不會擴充新方法了!)?

C 中的singleton 類的實現討論

c 中的singleton 類的實現討論 ansi c 中的 singleton 實現說難不難,說容易也不容易,很多人寫 ansi c 的 singleton class 都有錯誤。這篇文章討論怎樣在 ansi c 中寫 singleton class,希望對大家有幫助。設計模式 中把 single...

子父類出現後,類成員的特點(變數 函式)

子父類出現後,類成員的特點 類中成員 1 變數 2 函式 3 建構函式 1 變數 如果子父類中出現非私有的同名成員變數時,子類要訪問本類中的變數用this 子類要訪問父類中的同名變數用super super的使用和this的使用幾乎一致 this代表的是本類物件的引用 super代表的是父類物件的引...

使用PagedDataSource類實現分頁

下面例項是用pageddatasource類實現datalist控制項的資料分頁 頁面後台 頁面前台 注 pageddatasource 類的部分公共屬性 allowcustompaging 獲取或設定指示是否啟用自定義分頁的值。allowpaging 獲取或設定指示是否啟用分頁的值。count 獲...