Delphi接口幽默解释

接口分广义和狭义之分,很多国内翻译的书对此误人非浅。在DELPHI中,广义接口除了你要问的接口还包括抽象类、在单元文档前声明的INTERFACE等,狭义接口指的是在编程中用INTERFACE定义的。
   简单地说狭义接口(以后称接口)就是定义了方法和属性的空架子(术语为方法签名,包括函数和过程),属性本身也是存过程和取函数,即也是方法,在接口定 义中所有成员都是默认的PUBLIC,没有数据成员。这些方法由继承它的子类来实现,这个子类只能有一个而且必须有一个父类,却可以有多个父接口。
接口可以连接完全不同的类对某一共同操作的桥梁,比如,“跑”这个操作,如果要用类继承,可以在子类中去重载,但是“日本猪”、“小泉家族”、“耗子”、 “机器”、“车船”这些类都有“跑”的功能,单纯类继承是无法实现的,但用接口可以,首先定义一个接口“TRUN”,然后再继承这个接口形成上述的类,在 类中实现这个接口。
算了,边给代码解释:

type
TRUN=interface
   procedure 跑;
end;

 日本猪=class(TInterfacedObject,TRUN)
       //TInterfacedObject是实现了接口三个方法的Object类,其中一个是QueryInterface
procedure 跑;
............
//..........
end;


小泉家族=class(TInterfacedObject,TRUN)
procedure 跑;
............
//..........
end;

implementation
......

//应用:
procedure test;
var
牲:日本猪;
倭:小泉家族;
动:TRUN;
begin
牲:=日本猪.create;
倭:=小泉家族.create;
倭.QueryInterface(TRUN,动);
动.跑;//小泉家族类的跑
牲.QueryInterface(TRUN,动);
动.跑;//日本猪类的跑


end; 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值