zoukankan      html  css  js  c++  java
  • Delphi 的接口(4) 接口的属性


    代码文件:

    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;
    
      {此接口声明了一个 Name 属性; 因为接口没有字段, read/write 都只能从方法}
      IMyInterface = interface
        function GetName : string;
        procedure SetName(val : string);
        property Name : string read GetName write SetName;
      end;
    
      {类实现的是接口的读写方法, 属性还是属于接口的; 类可以提供一个储存属性的字段}
      TMyClass = class(TInterfacedObject, IMyInterface)
      private
        FName: string;
      public
        function GetName: string;
        procedure SetName(val: string);
      end;
    
    var
      Form1: TForm1;
    
    implementation
    
    {$R *.dfm}
    
    { TMyClass }
    
    function TMyClass.GetName: string;
    begin
      Result := FName;
    end;
    
    procedure TMyClass.SetName(val: string);
    begin
      FName := val;
    end;
    
    { TForm1 }
    
    procedure TForm1.Button1Click(Sender: TObject);
    var
      c: TMyClass;
      i: IMyInterface;
    begin
      c := TMyClass.Create;
      i := c;
      i.Name := 'ABC';
      ShowMessage(i.Name); {ABC}
    
      //没有一个 c.Name 存在, 这个属性只属于接口
    end;
    
    end.
    
  • 相关阅读:
    倚天
    第5課 森さんは7時に起きます。
    第1課 李さんは中国人です
    一个整体的规划
    こんにちは
    原始凭证
    第3課 ここはデパートです
    ERP术语
    第2課 これはほんです
    vc 问题总结
  • 原文地址:https://www.cnblogs.com/del/p/1496786.html
Copyright © 2011-2022 走看看