当前位置: 网学 > 编程文档 > DELPHI > 正文

Delphi接口详述

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 13/07/31
nteger;  end; TFooBar = class(TInterfacedObject, IFoo, IBar)  //为同名方法取别名  function IFoo.F1 = FooF1;  function IBar.F1 = BarF1;  //接口方法  function FooF1 : Integer;  function BarF1 : Integer;end; function TFooBar.FooF1 : Interger;begin  Result := 0;end; function TFooBar.BarF1 : Interger;begin  Result := 0;end;    3.implements指示符    implements指示符是在Delphi4中引进的,它的作用是委托另一个类或接口来实现接口的某个方法,这个技术有时又被称为委托实现,关于implements指示符的用法,请看下面的代码: type  TSomeClass = class(TInterfacedObject, IFoo)   //Stuff   function GetFoo : TFoo;   property Foo : TFoo read GetFoo implements GetFoo;   //Stuff  end;    在上面例子中的implements指示符是要求编译器在Foo属性中寻找实现IFoo接口方法。属性的类型必须是一个类,它包含IFoo方法或类型是IFoo的接口或IFoo派生接口。implements指示符后面可以列出几个接口,彼此用逗号隔开。    implements指示符在开发中提供了两个好处:首先,它允许以无冲突的方式进行接口聚合。聚合 (Aggregation)是COM中的概念。它的作用是把多个类合在一起共同完成一个任务。其次,它能够延后占用实现接口所需的资源,直到确实需要资源。例如,假设实现一个接口需要分配一个1MB的位图,但这个接口很少用到。因此,可能平时你不想实现这个接口,因为它太耗费资源了,用implements指示符后,可以只在属性被访问时才创建一个类来实现接口。    4.使用接口    当在应用程序中使用接口类型的变量时,要用到一些重要的语法规则。最需要记住的是,一个接口是生存期自管理类型的,这意味着,它通常被初始化为nil,它是引用计数的,当获得一个接口时自动增加一个引用计数;当它离开作用域或赋值为nil时它被自动释放。下面的代码演示了一个接口变量的生存期自管理机制。 var  I : ISomeInterface;begin   //I被初始化为nil  I := FunctionReturningAnInterface;  //I的引用计数加1   I.SomeFunc;   //I的引用计数减1,如果为0,则自动释放。 end;    关于接口变量的另一个规则是,一个接口变量与实现这个接口的类是赋值相容的,例如,下面的代码是合法的: procedure Test(FB : TFooBar)var  F : IFoo;begin   F :=FB; //合法,因为FB支持IFoo    最后,类型强制转换运算符as可以把一个接口类型的变量强制类型转换为另一种接口。示例如下: var  FB : TFooBar;  F : IFoo;  B : IBar;begin  FB := TFooBar.create;   F :=FB; //合法,因为FB支持IFoo  B := F as IBar;  //把F转换为IBar

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号