TSL语言基础 > Object TSL > 方法

重载(overload)    

  • TSL可以为一个类声明相同的名称不同参数的多个方法,这叫做重载。每个重载方法声明后面加关键字overload,并且它们必须有不同的参数列表。形式为:

    Function F();overload;

    示例:

    Type BaseClass =class
    public
      function Display(str,str2) ;overload;
      Begin
        writeln(str,' ',str2);
      End;

      function Display(str); overload;
      begin
        writeln(str);
      end;
    End;
    上面的代码为BaseClass 声明了 2个Display方法。可以按照2种方式调用

    可以在子类中重载也可以重载父类的方法。

    示例:
    program test;
    Type BaseClass =class
    public
      function Display(str);
      begin
        writeln(str);
      end;
    End;

    Type SubClass =class(BaseClass)
      function Display(str,str2);overload;
      Begin
      writeln(str,' ',str2);
      End;
    End;

    Begin
      SC:=createObject("SubClass");
      SC.Display("overload");
      SC.Display("overload" ,"test");
    End.

    上面的例子中SubClass继承自BaseClass,SubClass的Display方法重载了父类Display方法。
    原理:SubClass通过继承实际上拥有了方法Display(str)方法,然后通过overload重载了本身的方法,于是SubClass具有了2个不同参数的Display?方法。