• 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.
    
  • 相关阅读:
    第12课
    第11课
    第6课
    第5课
    ubuntu apache 通过端口新建多个站点
    phpstudy所需运行库
    ubuntu 修改和配置ip
    Linux Cp命令
    Ubuntu各个版本的镜像下载地址
    ubuntu 虚拟机添加多个站点
  • 原文地址:https://www.cnblogs.com/del/p/1496786.html
Copyright © 2020-2023  润新知