在**中時常會見到,乙個抽象類實現乙個介面,
這一段**的截圖是在junit的原始碼中擷取的.
我能想到的解釋是:為了轉型方便,如果這個方法只在非抽象實現類實現,能呼叫到這個方法的做法就是:
1,介面 obj = new 實現類();
2,實現類 obj = new 實現類();
如果轉型為抽象類的話則不能使用這個方法.
如:抽象類 obj = new 實現類();
這樣用,是從程式的設計角度來考慮的,設計模式中有乙個開閉原則,即對擴充套件開放,對修改關閉.spring框架中這種設計模式的運用的地方有很多.每乙個抽象類都有他自己的處理方式,他的子類可以覆蓋父類的方法.在子類過載父類的方法中,可以呼叫父類方法.還是多看看設計模式!
java抽象類與介面的區別抽象類與介面的特性是什麼
介面和抽象類的概念不一樣。介面是對動作的抽象,抽象類是對根源的抽象。抽象類表示的是個物件,什麼物件。介面表示的是物件的功能,能做什麼。舉個例子 男人 物件 和女人 物件 這兩個類 物件 他們可以抽象為人。公貓和母貓可以抽象為貓。人可以吃飯,可以睡覺,貓呢也可以吃飯和睡覺,那麼這個 吃飯 睡覺 就是某...
類 抽象類 介面 的 總結
方法 構造方法 建立類時類裡面預設的方法 普通方法 返回值 引數 屬性 可以是變數也可以是常量 普通方法 有具體的方法體 抽象方法 抽象方法就是有返回值 有引數 區別就是抽象方法沒有方法體 例如 public void study int x 他的方法體是空的 為什麼沒有方法體呢?抽象方法是用用來描...
類 抽象類 介面的區別
類和抽象類 不同點 抽象類不能例項化,只能被繼承 抽象類可以定義抽象方法 相同點 抽象類和一般類都是用來描述事物的,都在內部定了成員。介面和抽象類 不同點 介面是對動作的抽象,抽象類是對根源的抽象 抽象類表示的是這個物件是什麼,介面表示的是這個物件能做什麼 介面更多的是在系統架構設計方法發揮作用,主...