2014-04-01 37 views
1

我來自C++背景,現在正在嘗試學習Java。對於C++類,我們經常將接口和實現文件分別分成foo.hfoo.cpp。在此之後,我們將鏈接使用#include statement如何將類分離爲Java的接口和實現

對於Java,我如何將接口和實現分成兩個單獨的文件,類似於我在C++中完成的操作,要採取的步驟是什麼?

+0

簡單的說你就不要。 –

+0

@CaptainObvlious你爲什麼不這樣做? – Computernerd

+1

從這個答案可能會有所幫助:http://stackoverflow.com/questions/7092199/is-it-correct-that-header-files-in-c-and-abstract-class-interface-implementati?rq=1 –

回答

0

interface關鍵字,它允許您聲明公共API,實施類可以使用implements來利用公共API。這是儘可能接近你想要的分離。 Java的設計方式不同,不存在頭文件等。頭文件不會在C++中充當接口,它們只是編譯器所需的單元,因此編譯器知道在哪裏找到方法簽名。C++中對於接口概念更正確的等價物是抽象基類。

爲了回答爲什麼...好,我就引導您到這個已經回答了問題here

1

在Java中沒有這樣的區別。

您可以做的最接近的事情是對接口和接口的實現進行嚴格的分離(通常推薦的東西)。

因此,例如,你可以有一個

IMyInterface.java

public interface IMyInterface { 

} 

MyImplementation.java

public class MyImplementation implements IMyInterface { 

} 

但是......這是不一樣的....它更像是C++抽象類和C++實現類。

0

...我們經常拆分接口和實現文件到foo.hfoo.cpp ...

這不是真的,你是在混淆的術語類聲明(抽象)接口

Java沒有頭文件的概念,也沒有區分類聲明和類定義。