Delphi中Interface接口的使用方法

unit Unit1;

{$mode objfpc}{$H+}

interface

uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
ComCtrls;

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 }

TForm1 = class(TForm)
Button1: TButton;
ProgressBar1: TProgressBar;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
function getCar:ICar; //此处å¯ç”¨åˆ«çš„æ–¹å¼æ¥å®žçŽ°èŽ·å–ICAR,如放在DLL文件中;
end;

 

var
Form1: TForm1;

implementation

{$R *.lfm}

{ TForm1 }

{ 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.

转载于:https://www.cnblogs.com/Siegel/p/6912982.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值