最近,还是看到很多人在问对象和接口的问题。
我原本以为,这已经不是个问题了,但是现在看来,它还困扰这很多程序员。
其实这个问题很简单,举例说明吧:
你是一个对象,继承自你的父母,你的gf也是一个对象,继承自她的父母,只有你和你的gf发生关系(比如打kiss)的时候,才会出现接口。这是接口的本质,接口就是一个对象要和另外一个对象发生关系时的协议。
很多误导人的书,把接口说成是为了解决多重继承问题,其实是作者不懂,而且还在误导别人。从下面的例子可以分析一下
type
TSun = class(TParent, ISomeInterface)
....
end;
持以上观点的人,只是从现象上看到,诶,这不是c++的多重继承吗?
错了,上面的写法,真实的含义,应该是这样的,TSun,继承于TParent,说明TSun有TParent大多数特性,还可能有自己的一些新特性,或者TParent没有完成的虚特性,TSun也完成了。这里主要解决代码复用问题。
但是,从语义上,却不能说TSun继承自ISomeInterface,ISomeInterface的出现说明这样一个问题:TSun,希望它的调用者按ISomeInterface的标准调用自己。
一切,都很清楚了,接口,和硬件的接口,协议,是一回事,跟面向对象没有任何关系,接口的出现,基于这样一个事实,对象间会发生关系,而接口具体明确的规定了发生关系的协议。就像一台电脑,本身是一个对象,但是至少又有电源,开关两个接口,人机交互又需要键盘和显示器两个接口。
所以,上面的例子是说,我遵守ISomeInterface接口,只要按ISomeInterface接口调用我,不会有任何问题。
从面向对象的角度看,public部分的东西,就是接口,只不过,interface的出现,更加强调了这个事实。它是大规模合作开发时的协议,是开发团队成员间必须遵守的规范。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/srw/archive/2005/07/13/424269.aspx
分享到:
相关推荐
通俗讲解计算机语言及面向对象
3个文档: 无线通信原理通俗解读1.pdf 无线词语解释通俗解剖版2.pdf 无线网络规划通俗讲解 3.pdf 作者用通俗的语言讲解了很多通信里面枯燥的概念,写的太棒了。比大学很多教材好看多了。感谢这些多才的牛人们!
卡尔曼滤波比较好的文档,通俗易懂!他以简单易懂的语言形象的描述了卡尔曼滤波的基本思想和特点。
通俗讲解计算机语言及面向对象.pdf
8D报告步骤通俗完整讲解.doc
PID通俗易懂的讲解,供刚接触PID的人使用。
PID算法通俗讲解知识讲解.pdf
卡尔曼滤波器通俗讲解
该文档用通俗的话以及一些网络介绍资源来介绍tomcat的内部原理与应用
SVPWM的通俗讲解及C语言代码。恩…… 搞 SVPWM 的目的呢 …… ..其实就是想让电机平稳地旋转,这次主要说说三相同步电动机( PMSM ) 的 SVPWM 控制吧
通俗讲解OPCUA,通俗入门篇,工业自动化,数据采集编程参考
viterbi算法通俗讲解
一个不知道从哪个git上down下来的函数式编程的入门文档,感觉看着比一些官方讲的东西有用太多,分享出来给大家
SVPWM的通俗讲解.pdf
通俗讲解电子电路.zip
PID算法通俗讲解.doc
通俗讲解电子电路.docx
通俗地讲解计算机工作原理.docx终于找到了一篇文章!通俗地讲解计算机工作原理.docx终于找到了一篇文章!通俗地讲解计算机工作原理.docx终于找到了一篇文章!通俗地讲解计算机工作原理.docx终于找到了一篇文章!通俗地...
【网络术语的通俗讲解】--帮你透彻理解计算机网络
如何与客户通俗讲解ERP