zoukankan      html  css  js  c++  java
  • 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.

  • 相关阅读:
    Django
    闭包&装饰器
    Python学习 Day 062
    Python学习 Day 059
    Python学习 Day 058
    Python生成器
    第一类对象(函数),闭包及迭代器
    进阶函数的学习
    对函数的初步了解
    python文件操作
  • 原文地址:https://www.cnblogs.com/Siegel/p/6912982.html
Copyright © 2011-2022 走看看