最近,还是看到很多人在问对象和接口的问题。
我原本以为,这已经不是个问题了,但是现在看来,它还困扰这很多程序员。
其实这个问题很简单,举例说明吧:
你是一个对象,继承自你的父母,你的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
分享到:
相关推荐
### 通俗讲解计算机语言及面向对象 在计算机科学领域,理解和掌握编程语言是至关重要的,尤其是面向对象编程语言,如Java。本文旨在深入浅出地解释面向对象编程的基本概念,帮助读者建立对这一主题的全面认识。 ##...
3个文档: 无线通信原理通俗解读1.pdf 无线词语解释通俗解剖版2.pdf 无线网络规划通俗讲解 3.pdf 作者用通俗的语言讲解了很多通信里面枯燥的概念,写的太棒了。比大学很多教材好看多了。感谢这些多才的牛人们!
综上所述,面向对象编程是一种强大的编程范式,它通过使用类和对象来模拟现实世界中的实体和行为,使得软件开发更加模块化和易于维护。C++和Java作为面向对象编程语言的代表,各自拥有着独特的特性,但都遵循了面向...
一个不知道从哪个git上down下来的函数式编程的入门文档,感觉看着比一些官方讲的东西有用太多,分享出来给大家
PID 算法通俗讲解 PID(Proportional-Integral-Differential)算法是控制系统中经常使用的一种反馈控制算法,广泛应用于工业自动控制、机器人控制、计算机控制等领域。下面是 PID 算法的通俗讲解。 一、PID 算法的...
"OO 面向对象概念通俗说明" OO 面向对象概念通俗说明是指使用通俗的举例让大家知道 OO 的概念。OO 是一种编程方式,它使用对象和类来组织和设计程序。OO 的主要特征包括封装、继承和多态。 在 OO 中,对象是指具有...
### SVPWM通俗讲解及其应用 #### 一、引言 空间矢量脉宽调制(SVPWM)是一种用于控制三相交流电机的有效方法,尤其是针对三相同步永磁电机(PMSM)。通过合理控制电机各相绕组中的电流,可以确保电机稳定且高效地运行...
文档对象模型(DOM)是Web开发中的一个关键概念,它为HTML和XML文档提供了一个结构化的表示,并允许程序和脚本动态地访问和更新文档内容、结构和样式。DOM是独立于语言的标准,这意味着任何支持DOM的编程语言都可以...
一个关于项目管理的通俗讲解
VC++(Visual C++)是微软公司推出的一种基于C++语言的集成开发环境,它集成了编译器、调试器和其他开发工具,使得开发者能够更高效地编写和管理C++代码。VC++不仅支持标准的C++语言,还提供了对Microsoft Windows ...
内部类允许更复杂的结构和控制,而内部接口则是定义在内部类中的接口。 在学习Java的过程中,理解这些基本概念对于掌握Java编程至关重要。随着经验的积累和对高级特性的学习,如泛型、并发编程、网络编程和流式处理...
在这个信息爆炸的时代,计算机网络就像是支撑我们社会运转的神经系统。为了更加透彻地理解这错综复杂的网络世界,本文...计算机网络的世界虽然复杂,但通过这样的通俗讲解,相信你已经能够感受到它的脉络和运作方式了。
通俗讲解Java绘图功能机制以及绘图框架的源码
互联网改变了世界,移动互联网重新塑造了生活,“在 家不能没有网络,出门不能忘带手机”已成为很多人的 共同感受。人们对动互联网的要求是更高速、更便捷、 更强大、更便宜,需求的“更”是没有止境的,这促使着 ...
### 网络术语通俗讲解 #### 一、基本概念 **本地主机(Local Host):** 指的是用户当前使用的计算机系统。在本文档的例子中,将它比作“小不点”。 **本地局域网(Local Area Network, LAN):** 通常指的是家庭...
文档加代码,如果看完pdf,观察者模式还没学会,感觉你没必要学设计模式了,文档非常通俗易通,适合新手上手。
多态(Polymorphism)是面向对象编程的三大特性(封装、继承、多态)之一,它允许我们使用一个通用的接口来处理不同类型的对象,从而实现灵活和高效的代码设计。这张趣图通过扫地车与拖拉机的类比,生动地展示了多态...
个人在学习ORACLE过程当中记录下来的学习笔记,通俗易懂,适合想快速了解ORACLE基本语法的朋友