论坛首页 入门技术论坛

Interface进化历程 --Java中Interface与C++中相关概念的点点理解

浏览 2659 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-04-28  

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.

论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics