回答
與.h和.c分隔的最接近的類比是接口。
MyInterface.java
interface MyInterface {
void doSomething();
}
MyImplementation.java
class MyImplementation implements MyInterface {
public void doSomething() {
System.out.println("Hello world");
}
}
然後,您在任何地方使用的接口類型,除了實際的構造
MyInterface instance = new MyImplementation();
當然,有幾個區別。
- 單個類可以實現多個接口,以及多種類型的可以在單個接口
- 會員值不包含在一個接口,只方法。
- 只有公共方法出現在Java界面中。
- 在接口中不允許實現任何實現(與依賴於.h實現的C++模板相反)。
但是這就是「接口編程」的完成方式。
對Java命名接口與具體類沒有一致的約定。 C#(對接口的處理幾乎完全相同)有一個約定,我在接口以I
開始的地方使用,例如, IList
。 Java標準庫傾向於爲接口使用「純」名稱,然後針對具體實現對其進行修改,例如List
(接口)和ArrayList
(實現)。
通過創建interface
,並在兩個文件中還實現它(一般) -
Say.java
界面 -
public interface Say {
public void say(String msg);
}
和Hello.java
,具體實現(在這種情況下)也main()
方法 -
public class Hello implements Say {
@Override
public void say(String msg) {
System.out.printf("%s, World!%n", msg);
}
public static void main(String[] args) {
Say s = new Hello();
s.say("Hello");
}
}
注意:在Java中,您可以使用main()
方法來創建多個類。使用@Override
註釋也是一個好習慣。
你不知道。你可以通過Java接口來完成,但是爲每個類做這些都是不好的設計。只有在您期望多個類實現它們或用作回調函數描述時,才應該使用接口。真正從在C++ .h文件分離的代碼點是
1)爲了防止腹脹二進制如編譯器將使得每一個功能的多個版本其包括在
2各自文件)使它更容易閱讀那些只是想實現的人。
在java中,1不是問題。而Java更喜歡通過自動文檔工具(JavaDoc)來解決問題2。
TLDR-你沒有。
「只有在您期望多個類實現它們時才能使用接口」只是爲了澄清:在許多Java庫中,只有一個接口只有一個實現。但是,這些將是合理的具有不同實施的情況。 「你不」可能太強大了。 –
我會堅持你不。直到你真的寫出第二個實現,其浪費的努力。當你真正開始它時,你幾乎總是最終改變界面以獲得更好的效果。直到至少有2個實現,我纔會斷開一個接口。例外是回調接口,其中定義是進行回調的類所需要的。 –
那麼,java程序中的某些類沒有接口是否正常? –
爲了有一個接口和實現分離,建議下面的步驟..
(1).Identify方法,其是你的類的定義的一部分。這成爲具有類似功能的新類的模板。
(2)。創建一個新的接口,包含被鑑定爲接口定義的一部分的方法(可能有很多的接口)
(3)修改你的類實現您所創建
在Java接口(S)接口和類(即「實現」)是不是在文件級別或其名稱區別。它們都是聲明。具體來說,一個類聲明它實現了哪個接口。例如:
public class MyClass implements Interface1, Interface2, .... {
// implementations
}
Java沒有與C/C++中相同的「鏈接」概念。您可以以任何合法形式致電您的班級或界面。在運行時,接口與其實現類之間的「鏈接」是通過類加載器完成的。
- 1. 接口的分離與實現
- 2. 分離接口和實現
- 3. 接口實現(接口分離原理)
- 4. 如何將類分離爲Java的接口和實現
- 5. 「將接口與實現分離」C++ Deitel 9e Book(如何編譯?)
- 6. 問題在分離接口和實現
- 7. Java中接口的實現
- 8. Java實現接口
- 9. Java接口實現
- 10. 在java中實現接口
- 11. 實現接口在Java中
- 12. 將接口實例分配給實現該接口的類
- 13. 將API與其實現分離
- 14. 實現從接口的Java
- 15. 實現接口的Java
- 16. 實現與接口集合的接口
- 17. 如何在Grails服務中將接口與實現分開?
- 18. Java泛型接口實現
- 19. Java接口實現問題
- 20. 實現一個java接口
- 21. Java接口和實現
- 22. Java接口實現對象?
- 23. Java:沒有接口實現?
- 24. Java接口實現問題
- 25. 實現接口與提供接口
- 26. 部分實現接口
- 27. C++頭文件 - 接口和實現細節之間的分離
- 28. 如何實現與接口
- 29. 接口實現與空體
- 30. 實現jQuery與HTML分離的文件
您可能正在尋找Java接口。儘管如此,它們並不完全相同。 – Christian
我是否需要使用相同的文件名創建兩個.java文件?一個具有接口,另一個具有實現定義? –