Interface进化历程 --Java中Interface与C++中相关概念的点点理解
关键字: interface进化历程Java中Interface与C++中相关概念的点点理解
今天查Tuple这个词在编程中的意义时不经意间看到了C++中头文件声明这个说法,好长时间没写C++代码了,现在把C++的头文件放到Java的语境里不由自主地就想到了Java中Interface的概念.
表面上有点像.
1,以"实现"角度来看,在Java中一个接口得有实现类不然没有实际意义;C++中,一个头文件声明若没有对应的类,这个头文件声明也没有什么根儿.
2,以"调用"角度来看,在Java中的一个接口在别的类中调用时,一般得在调用类中把这个接口以import的方式引入那个实现类可以借助IoC的方式来new出来;在C++中想声明一个类的实例,我们也得把头文件声明以include的方式弄进来,而那个"具体"类好像不用....
另一方面又有些不像:
1,Java中的Interface里的声明的method都是抽象的,不能有任何实现.而C++中头文件声明里可以有一些method的简短实现.
2,Java中的Interface可以有任何个实现类,而C++中头文件声明根本没这方面的"潜力".
有了以上的像与不像的总结,再回过头来看看Java中Interface的提出.
以前一直认为Interface是把Java中的抽象类概念更往更深方向发挥了下,另一方面利用Interface可以很好地解决C++中的多重继承问题.可以说Java中的Interface概念在这一点(解耦合)发挥的那真叫是淋漓尽致,也达到了炉火纯清的程度.
今天这个无意中看了头文件声明这个东东后,觉得对Interface概念的理解可以再加进一点点人性化的味道.
刚才跟一朋友聊C++中的头文件声明时,他提到"主要是为了能更加方便的看清楚所有的函数功能,以及和其他头文件之间的关系
",这个特性是给人看的,也就是说,Coder/Designer通过头文件声明可能更直观地看到模块的功能点,不至于淹没在那些细之又细地实现上.
从这一点上来看,Interface概念表达的也更为直接.可不是嘛: 单单Interface(接口)这个词就可足以imply出所有功能点来.
写到这渐渐得出以下这么个formula:
Java中的Interface = (C++中头文件声明) + (C++中多重继承).
更形象一点来说就是给C++中的多重继承加一个头文件声明的"外衣"就成就了Java中Interface.
发表评论
提醒: 该博客已发表在公共论坛,博客所有留言会成为论坛回贴,留言请注意遵守论坛发贴规则
- 浏览: 25444 次
- 性别:

- 来自: 北京

- 详细资料
搜索本博客
链接
最新评论
-
自写的一个JavaScript小小 ...
被ym1981抢先了
-- by longleg -
自写的一个JavaScript小小 ...
真谢谢ym1981,我还不知道select可以这么简单地来选定,再谢谢自己,若不 ...
-- by rmn190 -
自写的一个JavaScript小小 ...
function lockSelect(id, value){ ...
-- by ym1981 -
"异常"的梦
呵呵...
-- by rmn190 -
"异常"的梦
学习Java有点疯狂了,连做个梦都能想到异常,佩服得五体投地,看来偶也要努力学习 ...
-- by celebration






评论排行榜