unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; //有方法重载的类 TMyClass = class public procedure MyProc(i: Integer); overload; procedure MyProc(s: string); overload; function MyProc(s1,s2: string): string; overload; end; //关于方法重载: //过程和函数之间可以重载 //类内重载必须有 overload 关键字 //子类重载必须有 overload 关键字,夫类可以没有 //如果夫类是虚函数(virtual dynamic),子类重载时需要加 reintroduce 修饰词 //published 区内不能重载 var Form1: TForm1; implementation {$R *.dfm} { TMyClass } procedure TMyClass.MyProc(i: Integer); begin ShowMessage(IntToStr(i)); end; procedure TMyClass.MyProc(s: string); begin ShowMessage(s); end; function TMyClass.MyProc(s1, s2: string): string; begin Result := s1 + ' and ' + s2; end; //测试 procedure TForm1.FormCreate(Sender: TObject); var class1: TMyClass; begin class1 := TMyClass.Create; class1.MyProc(2); //2 class1.MyProc('2'); //2 ShowMessage(class1.MyProc('2','3')); //2 and 3 class1.Free; end; end.