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?方法。