示例注释(现在应该知道的):


{   1、接口命名约定 I 起头, 就像类从 T 打头一样.   2、接口都是从 IInterface 继承而来; 若是从根接口继承, 可省略.   3、接口成员只能是方法、属性, 没有字段.   4、接口成员都是公开的, 不需要 private、protected、public、published 等任何访问限制.   5、因为接口只声明、无实现, 也用不到继承与覆盖相关的修饰(virtual、dynamic、abstract、override).   6、一个接口可以从另一个接口继承, 但不能从多个接口继承; 不过 Delphi.Net 已支持接口的多继承了.   7、一个类可以实现多个接口: TMyClass = class(父类, 接口1, 接口2, ...)  end;   8、不过实现接口的类有多么丰富, 接口只拥有自己声明的成员.   9、实现接口的类一般继承于 TInterfacedObject, 直接从 TObject 继承会增加一些麻烦而重复的工作.   10、接口在用完后会自释放, 并同时释放拥有它的类; 这很方便, 但同时带来很多问题.
}

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;

type

//定义接口如果接口独立成一个文件,则在应用程序中和实现程序中都要引用该接口文件;

ICar = interface (IInterface)

['{ED52E264-6683-11D7-B847-001060806215}']

procedure drive;

end;

//接口实现类1,一定要加入TinterfacedObject才能使用;

TCar = class(TInterfacedObject,ICar)

public

procedure drive;

end;

//接口实现类2,一定要加入TinterfacedObject才能使用;

THouseCar = class(TInterfacedObject,ICar)

public

procedure drive;

end;

TForm1 = class(TForm)

Button1: TButton;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

function getCar:ICar; //此处可用别的方式来实现获取ICAR,如放在DLL文件中作为导出函数;

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

{ TCar }

procedure TCar.drive;

begin

ShowMessage('TCar.drive');

end;

{ THouseCar }

procedure THouseCar.drive;

begin

ShowMessage('THouseCar.drive');

end;

procedure TForm1.Button1Click(Sender: TObject);

var

s:ICar;

begin

s:= getCar;

s.drive;

end;

function TForm1.getCar:ICar;

begin

Result:=THouseCar.Create; //此处为整个实现的关键点;

//或Result:=TCar.Create;

end;

end.

Delphi中Interface接口的使用方法的更多相关文章

  1. Delphi中TStringList类常用属性方法详解

    TStrings是一个抽象类,在实际开发中,是除了基本类型外,应用得最多的. 常规的用法大家都知道,现在来讨论它的一些高级的用法. 先把要讨论的几个属性列出来: 1.CommaText 2.Delim ...

  2. Delphi中的接口和抽象类

    参考:http://blog.csdn.net/xinzheng_wang/article/details/6058643 接口:Interface Delphi中接口中的关键字Interface,但 ...

  3. Android开发中Parcelable接口的使用方法

    在网上看到很多Android初入门的童鞋都在问Parcelable接口的使用方法,小编参考了相关Android教程,看到里面介绍的序列化方法主要有两种分别是实现Serializable接口和实现Par ...

  4. Java集合中Map接口的使用方法

    Map接口 Map提供了一种映射关系,其中的元素是以键值对(key-value)的形式存储的,能够实现根据key快速查找value: Map中的键值对以Entry类型的对象实例形式存在: 建(key值 ...

  5. delphi中使用自定义资源的方法

    如果要在delphi中使用自定义资源文件*.res文件,比如一个光标,此时可以采用下列步骤: 1,创建包含相应的资源文件,这里是创建一个包含自定义光标的res文件. 2,在主窗体的pas文件中加入编译 ...

  6. Delphi中文件流的使用方法

    在Delphi中,所有流对象的基类为TStream类, 其中定义了所有流的共同属性和方法.TStream类中定义的属性介绍如下: 1.Size: 此属性以字节返回流中数据大小. 2.Position: ...

  7. java interface接口的传值方法

    A 类 package interface_test; public class A { private IPresenter ip; public A(IPresenter ip) { this.i ...

  8. 《Java程序员面试笔试宝典》之为什么Java中有些接口没有任何方法

    由于Java不支持多重继承,即一个类只能有一个父类,为了克服单继承的缺点,Java语言引入了接口这一概念.接口是抽象方法定义的集合(接口中也可以定义一些常量值),是一种特殊的抽象类.接口中只包含方法的 ...

  9. delphi中Message消息的使用方法

    实例1 unit Unit1; interface   uses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls ...

随机推荐

  1. Python学习笔记——文件写入和读取

    1.文件写入 #coding:utf-8 #!/usr/bin/env python 'makeTextPyhton.py -- create text file' import os ls = os ...

  2. JavaWeb学习笔记——Ajax

  3. Jquery实现textarea根据文本内容自适应高度

    本文给大家分享的是Jquery实现textarea根据文本内容自适应高度,这些在平时的项目中挺实用的,所以抽空封装了一个文本框根据输入内容自适应高度的插件,这里推荐给小伙伴们. autoTextare ...

  4. adapter(转自Devin Zhang)

    1.概念 Adapter是连接后端数据和前端显示的适配器接口,是数据和UI(View)之间一个重要的纽带.在常见的View(ListView,GridView)等地方都需要用到Adapter.如下图直 ...

  5. 用淘宝ip地址库查ip

    这是一个通过调用淘宝ip地址库实现ip地址查询的功能类 using System; using System.Collections.Generic; using System.Linq; using ...

  6. How to save milliseconds to DB in NHibernate

    We need to configure Timestamp in Mapping. eg. Map(x => x.ResponseDate).CustomType("Timestam ...

  7. [Unity] 查找资源

    有时候需要通过代码来为对象指定一个资源.可以通过下面的函数来查找资源. /// <summary> /// 查找资源 /// </summary> /// <return ...

  8. mssql手工注入

    判断注入点: 1.数字型 http://www.targer.com/article.aspx?id=1 http://www.targer.com/article.aspx?id=1' http:/ ...

  9. C++ compile issue

    You can do so via right-click -> Properties on a file or a selection of files in Solution Explore ...

  10. FZU2169 shadow题解

    http://acm.fzu.edu.cn/problem.php?pid=2169 Problem Description YL 是shadow国的国王,shadow国有N个城市.为了节省开支,sh ...