2013-03-01 114 views
1

請找到鏈接以供參考:"Strategy for success" article of JavaWorld爲什麼我們實現接口抽象類

我的問題是爲什麼我們需要有單獨的接口,並實現它的抽象類,我們可以聲明抽象類的抽象方法本身?

EX圖像,

public interface Border(){ 
     paintBorder(); 
     getBorderInsets(); 
     isBorderOpaque(); 
} 


public class abstract AbstractBorder implements Border(){ 
..... 
} 

,而不是我們能有像

public class abstract AbstractBorder { 
     paintBorder(); 
     getBorderInsets(); 
     isBorderOpaque(); 
} 

抽象類,爲什麼我們使用的界面?有什麼必要?

+0

的可能的複製[接口VS抽象類(一般OO)](http://stackoverflow.com/questions/761194/interface-vs-abstract-class-general-oo) – 2016-06-07 07:34:25

回答

0

當我開始使用Java時,這也是我曾經想過的。一個非常詳細的答案可以發現here。如果您需要進一步澄清,請發表評論。

0

是一個很好的實踐編程接口,而不是上課。在戰略模式中,這個想法具有「策略」的接口,在運行時你可以改變策略(實現接口的類)而不用改變其他代碼。

這是一個良好的開端到SOLID原則,使您的代碼更加靈活和強大。

我有一個exemple of the Strategy Pattern in my github和對象「Cavaleiro」(騎士英文)在運行時被改變。

對於我創建了一個接口,並使用它,而不是一個類的對象,並通過它,我可以改變「戰略」容易。

1

也許接口定義行爲,它們可能存在於其他抽象類,除了你提到的一個。一個很好的例子就是IDisposable接口。

如果您決定聲明抽象類本身裏面這些方法,你可能最終不得不面對很多混亂的,當你從這個抽象的實現的具體類。另外,由於您可以指定抽象類中的行爲,因此此行爲可能會被實現類重用。

相關問題