CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

请教接口与类与类接口与COM的概念??

楼主zsz0401()2002-09-20 09:58:40 在 Delphi / VCL组件开发及应用 提问

如何分析下面的类及其用途  
  TComponent   =   class(TPersistent,   IInterface,   IInterfaceComponentReference) 问题点数:100、回复次数:11Top

1 楼kangyinglai(vision)回复于 2002-09-20 10:07:38 得分 30

从类继承和类与接口的关系上说,那就是TComponent具有上述三个类或者接口的函数和特性。接口不能直接使用,只能通过继承于它的类实例化才能引用!关于COM,我可以告诉你也是接口和类的问题!只不过这些接口都遵循了一些标准定义,比如说IID,ClSID唯一。。。如果想知道细节,我可以告诉你一个方法。在delphi的project菜单下的Import   Type   Library命令可以打开一个窗口,列表中列出的都是在你的计算机上已经安装的COM对象所在的包文件,你可以使用Create   Unit把任何一个倒出成.pas文件,好好地欣赏一下类与接口!:))Top

2 楼zsz0401()回复于 2002-09-20 10:17:14 得分 0

楼上的朋友:  
  TComponent实现IInterface有什么具体用途,  
  不实现它不行吗?  
   
  如果单为TComponent   =   class(TPersistent)  
  有什么问题?  
   
  Top

3 楼windofsun(太阳风)回复于 2002-09-20 11:02:13 得分 20

一个类继承了一个接口,就必须实现该接口的所有方法。  
  你如果看过《设计模式》,就明白为什么要使用接口了。  
   
   
  接口就好像定义了一个规范,所有继承它的类必须符合这个规范。假设你定义一个接口I,类TA和TB实现了I接口,你调用接口I的方法的时候,可以用它的TA实现,也可以调用它的TB实现。这样,同样的代码可以实现不同的功能。Top

4 楼zsz0401()回复于 2002-09-20 11:42:00 得分 0

TComponent   =   class(TPersistent,   IInterface,   IInterfaceComponentReference)  
   
  是不是TComponent实现了IInterface与IInterfaceComponentReference所有方法,同时又增加了自己的类公开方法。  
   
  如TComponent   =   class(TPersistent)但其类中的其它不变,是不是功能一样的。  
   
  TComponent继承IInterface与IInterfaceComponentReference两个接口只不过是告诉我们它具有这两个接口的方法而已。  
   
  大侠们对我上面的个人理解多多指导,帮我改进错误的理解。  
   
  Top

5 楼kangyinglai(vision)回复于 2002-09-20 13:31:12 得分 20

不仅仅是具有,而是具体的实现!使用接口是采用了先进的面向组件开发的方法,面向组件开发就是面向接口编程!一个组件定义好接口,你可以很容易地扩展,只要是引用(继承)于该接口,实现方法可以不相同,这对于软件的维护不是很方便吗?Top

6 楼kangyinglai(vision)回复于 2002-09-20 13:32:44 得分 0

当然我是指更改组件中的对象的维护,变化更方便!:))Top

7 楼zsz0401()回复于 2002-09-20 13:36:14 得分 0

谢谢,有点明白了,但还是有点糊涂!Top

8 楼halfdream(哈欠)回复于 2002-09-20 13:57:00 得分 10

IInterface接口是所有VCL   COM对象要实现的接口.  
  在WINDOWS中,它实质就是IUnknown接口..  
  它包含三个方法..  
   
  引用计数(AddRef     和   Release   )  
  查询接口   ,查询同一组件中其它接口.  
   
   
   
                                                                                  =====哈欠====halfdream====  
  Top

9 楼kangyinglai(vision)回复于 2002-09-20 18:22:22 得分 10

只有用得多了,才能对它认识更深刻!我就是这样走过来的!Top

10 楼kangyinglai(vision)回复于 2002-09-20 18:27:16 得分 0

楼主,请你帮个忙!我前几天发了个帖子,一直没有人回复,现在我的问题已经解决了,为了结贴,麻烦你随便回复一句,把分全部赠给你!题目是"如何得到*.wav文件(cti)",当然其他的朋友也可以来,谁先来就给谁!Top

11 楼knock(垃圾土匪)回复于 2002-09-20 19:25:47 得分 10

我现在刚刚看《COM技术内幕》,就知道IUNKNOWN接口有三个方法:  
  queryinterface,addref,release.。。。。。。。。Top

相关问题

  • python 中有没有类似Java里【接口】的概念?
  • 软件项目分析阶段的一些概念求解:边界类,接口....
  • 接口如何在COM类中调用?
  • Ejb Home接口 概念问题
  • com接口
  • 关于接口类?
  • 接口,类,重载
  • 急需 frontpage 的COM接口和类型库,分数不拘!!!!!
  • COM定义接口,如何传递COLEVariant类型的参数?
  • COM接口问题

关键词

  • 接口
  • 文件
  • 类
  • tcomponent
  • iinterfacecomponentreference
  • iinterface
  • 继承
  • 实现
  • tpersistent
  • 方法

得分解答快速导航

  • 帖主:zsz0401
  • kangyinglai
  • windofsun
  • kangyinglai
  • halfdream
  • kangyinglai
  • knock

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo