zoukankan      html  css  js  c++  java
  • 多个接口出现同名函数的处理-转

    Delphi的处理原则是:

        给同名的函数分别设置别名,再分别实现以别名为名句的函数,以后类在调用时就是别名即可。

    代码如下:

    1.声明接口

    type
      
    IInter1
    =interface ['{769D95CA-90CE-41BA-A195-A6F43A30A3FC}']
      
    function getname:string; procedure setname(sname:string);
    end;
    IInter2
    =interface ['{1CE978B4-F7AC-44B1-9EAD-5B8CCE1510A1}']
       function
    getname:string;
       procedure
    setname(sname:string);
    end;
    2.创建类
       声明部分
    type
       TMyClass=class(TInterfacedobject,IInter1,IInter2)
       private
         FName:string;
       public
         { DONE : 设定别名 }
         function IInter1.getName=Inter1_getname;
         function IInter2.getName=Inter2_getname;
         procedure IInter1.setname=Inter1_setname;
         procedure IInter2.setname=Inter2_setname;
        { DONE : 重新命名 }
         function  Inter1_getname:string;
         function  Inter2_getname:string;
         procedure Inter1_setname(sname:string);
         procedure Inter2_setname(sname:string);
        { DONE : 析构 }
        destructor destroy;override;
      end;
    实现部分
    { TMyClass }

    destructor TMyClass.destroy;
    begin
      MessageDlg('exit object',mtinformation,[mbok],0);
      inherited;
    end;



    function TMyClass.Inter1_getname: string;
    begin
      MessageDlg('get inter1 name',mtinformation,[mbok],0);
      Result:=FName;
    end;

    procedure TMyClass.Inter1_setname(sname: string);
    begin
       MessageDlg('set inter1 name',mtinformation,[mbok],0);
       FName:=sname;
    end;

    function TMyClass.Inter2_getname: string;
    begin
      MessageDlg('get inter2 name',mtinformation,[mbok],0);
      Result:=FName;
    end;

    procedure TMyClass.Inter2_setname(sname: string);
    begin
      MessageDlg('set inter2 name',mtinformation,[mbok],0);
      FName:=sname;
    end;
    3.调用以上类中的函数:
    procedure TForm1.Button1Click(Sender: TObject);
    begin
        myclass:=TMyClass.Create;
      try
        myclass.Inter1_setname('88');
        ShowMessage(myclass.Inter2_getname);
      finally
        myclass.Free;
      end;
    end;
  • 相关阅读:
    mysqladmin命令的用法
    利用cacti监控多端口memcache
    Msyqlproxy的编译安装
    eclipse下SVN subclipse插件
    Asp.net SqlDataSource用法 插入 更新 删除
    C#的匿名方法
    MDHH使用图解
    SVN入门及配置使用(多平台)
    编写Windows Live Writer插件(1)
    防止事件冒泡
  • 原文地址:https://www.cnblogs.com/luckForever/p/7254993.html
Copyright © 2011-2022 走看看