zoukankan      html  css  js  c++  java
  • Delphi中Interface接口的使用方法

    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.
  • 相关阅读:
    bzoj3832
    bzoj2117
    bzoj1095
    BZOJ 4247: 挂饰 题解
    1296: [SCOI2009]粉刷匠
    3163: [Heoi2013]Eden的新背包问题
    2287: 【POJ Challenge】消失之物
    1334: [Baltic2008]Elect
    2748: [HAOI2012]音量调节
    1606: [Usaco2008 Dec]Hay For Sale 购买干草
  • 原文地址:https://www.cnblogs.com/china1/p/3419828.html
Copyright © 2011-2022 走看看