针对Java中的接口编程与使用C/C++中的头文件的概念相同吗?

asm*_*ier 13 c++ java interface header-files

我目前正在处理的java代码通常具有类似的结构

文件Controller.java:

interface Controller {...}
Run Code Online (Sandbox Code Playgroud)

文件ControllerImpl.java:

class ControllerImpl implements Controller {...}
Run Code Online (Sandbox Code Playgroud)

但是对于每个接口,只有一个实现.这与在C/C++中使用头文件不同,我将代码拆分成文件

Controller.hpp
Controller.cpp
Run Code Online (Sandbox Code Playgroud)

据我所知,已经引入了C/C++中的头文件来帮助编译器,这在Java中是不再需要的.头文件也应该有助于代码的可读性,但是具有折叠和轮廓视图的现代IDE这也不再是必需的.

那么为什么人们通过对接口编程再次通过后门引入Java头文件呢?

sbi*_*sbi 8

不可以.在C++中,文件(标题)与类不同.

像Java一样对接口进行编程也可以通过对抽象基类进行编程在C++中完成.

但是,"接口"的Java术语非常有限.基本上,任何函数声明都是一个接口:

void call_me(int times); 
Run Code Online (Sandbox Code Playgroud)

当然,类和其他类型.

在C++中,您可以在标题中对这些内容进行分组,因此界面可以包含一个标题.但是,它可能也包含多个标头.


Pet*_*rey 5

接口不是来自保留头文件的愿望.

接口最接近的Java来支持http://en.wikipedia.org/wiki/Design_by_contract