首页 > 解决方案 > 是否有与 Java 接口(“类...实现”)等效的 Delphi?

问题描述

假设我有两个类“ mycheckbox ”和“ mymemo ”分别派生自TCheckBoxTMemo。我想为两者都创建一个名为“ isdone ”的方法,该方法检查组件是否已完成。有没有一种方法可以在不知道正在处理的两个类中的哪一个的情况下通用地访问该方法?

在Java中它将是:class mycheckbox implements MyInterface

标签: oopdelphiinterface

解决方案


在 Delphi 中,您将使用通用接口,就像在 Java 中一样,例如:

type
  IMyInterface = interface
    ['{bfa4fffc-b87e-49ce-8aa9-4911e106959c}']
    function IsDone: Boolean;
  end;

  MyCheckBox = class(TCheckBox, IMyInterface)
  public
    function IsDone: Boolean;
  end;

  MyMemo = class(TMemo, IMyInterface) 
  public
    function IsDone: Boolean;
  end;

function MyCheckBox.IsDone: Boolean;
begin
 Result := ...;
end;

function MyMemo.IsDone: Boolean;
begin
 Result := ...;
end;

procedure DoSomething(Intf: IMyInterface);
begin
 ...
 if Intf.IsDone then...
 ...
end;

推荐阅读