文档章节

Delphi 的接口(5) - 一样的接口、不一样的实现

涂孟超
 涂孟超
发布于 2014/09/26 15:35
字数 177
阅读 10
收藏 0

代码文件:

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  end;

  IMyInterface1 = interface
    function Func(a,b: Integer): Integer;
  end;

  TAdd = class(TInterfacedObject, IMyInterface1)
  public
    function Func(a: Integer; b: Integer): Integer;
    destructor Destroy; override;
  end;

  TMul = class(TInterfacedObject, IMyInterface1)
  public
    function Func(a: Integer; b: Integer): Integer;
    destructor Destroy; override;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

{ TAdd }

destructor TAdd.Destroy;
begin
  ShowMessage('TAdd.Destroy');
  inherited;
end;

function TAdd.Func(a, b: Integer): Integer;
begin
  Result := a + b;
end;

{ TMul }

destructor TMul.Destroy;
begin
  ShowMessage('TMul.Destroy');
  inherited;
end;

function TMul.Func(a, b: Integer): Integer;
begin
  Result := a * b;
end;

{ TForm1 }

procedure TForm1.Button1Click(Sender: TObject);
var
  I: IMyInterface1;
begin
  I := TAdd.Create;
  ShowMessage(IntToStr(I.Func(9, 9))); {18}

  I := TMul.Create;  {I 在指向新的目标前会先释放前面所属的类}
  ShowMessage(IntToStr(I.Func(9, 9))); {81}
end;

end.

 
 
 
 
 

 

 

  

本文转载自:http://www.cnblogs.com/del/archive/2009/06/05/1496912.html

共有 人打赏支持
涂孟超
粉丝 12
博文 2011
码字总数 14107
作品 0
深圳
程序员
私信 提问
Delphi调用 C# 写的webservice

Delphi调用 C# webservice总结 用delphi的THTTPRIO控件调用了c#写的webservice。 下面是我调试时遇到的一些问题: 1:导入wsdl文件:file--new----other----webservice---WSDLimporter---输入...

vga
2014/11/25
0
0
毕业入职两个月-职场小白的碎碎念

  毕业后加入现在的公司快有两个月了,有牢骚,有对自己的想法,如果文章的内容和你产生了共鸣,不胜荣幸,如果让你感到不爽,十分抱歉。   从实习工作开始算起,工作也有一年半的时间了...

墨小宇
08/11
0
0
​Delphi开发WebService给ASP.NET调用

Delphi开发WebService给ASP.NET调用 说明: 1、本文档分3个部分,分别为: 用Delphi编写WebService 在IIS下部署WebService 在ASP.NET中调用webservice 2、开发环境为Windows XP SP2、Delphi ...

vga
2014/11/08
0
2
关于delphi Com+调用C# DLL的一点说明[转]

最近公司进行产品改造,由于存在部分代码是用delphi写的Com+需要调用C#写的Dll方法,经过网上一些搜索和摸索,调用已经OK。但是至于两者之间的事务问题还需要用到的朋友深入研究。 现在来说一...

老朱教授
2017/08/27
0
0
集成开发环境--Delphi

Delphi,是美国Borland(宝兰)公司於1995年开发在Windows平台下的快速应用程式开发工具(Rapid Application Development,简称RAD),它的前身是在DOS下的产品Borland Turbo Pascal。(非开源...

匿名
2009/03/11
21K
1

没有更多内容

加载失败,请刷新页面

加载更多

如何处理JavaScript 中的货币值?

 金钱无处不在。   无论在银行应用程序、电子商务网站还是证券交易所平台,我们每天都在与金钱互动。我们也越来越依赖技术来处理问题。   然而,关于如何以编程处理货币价值尚无共识。虽...

数据星河
12分钟前
3
0
并发中的volatile

1. 概述 由于线程有本地内存的存在, 一个线程修改的共享变量不会及时的刷新到主内存中, 使得另一个线程读取共享变量时读取到的仍旧是旧值, 就导致了内存可见性问题. 现在volatile就可以解决这...

Ala6
13分钟前
6
0
三大特性之---封装

封装从字面上来理解就是包装的意思,专业点就是信息隐藏,是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体,数据被保护在抽象数据类型的内部,尽可能...

architect刘源源
16分钟前
2
0
设计模式 之 策略模式

设计模式 之 策略模式 定义 提供几个算法策略,选择其中一个策略去执行。 优点 由于将算法封装成单独的策略,策略可以灵活切换。 扩展性好,符合开闭原则。 缺点 策略多,类也会变多 策略类需...

GMarshal
17分钟前
2
0
HBase集群监控的那些事儿

为什么需要监控? 为了保证系统的稳定性,可靠性,可运维性。 掌控集群的核心性能指标,了解集群的性能表现; 集群出现问题时及时报警,便于运维同学及时修复问题; 集群重要指标值异常时进行...

微笑向暖wx
17分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部