从Java再回到delphi.... 我有点晕了(200分)

  • 主题发起人 主题发起人 cAkk
  • 开始时间 开始时间
C

cAkk

Unregistered / Unconfirmed
GUEST, unregistred user!
用了几天Java,感觉挺顺手的,返回来再用delphi,发现了一些以前没注意过的东西。

Java和C++类似,class的构造函数可以有多种形式,比如一个JPerson的类:

public class JPerson
{
public JPerson()
{
}
public JPerson(int age,String name)
{
}
}

可是delphi好像只能有一种形式的构造函数?太不方便了?
或者是我没找到delphi的窍门?
 
delphi里也可以,声明的时候加个overload
 
就是函数的重载overload啊
不过我也很奇怪 有的书上说覆盖继承类的方法叫重载 (有的书上是直接写 覆盖)
有的说 同一个函数的返回或入口参数不同而实现不同叫重载
呵呵 一个是load 一个是ride
 
constructor Create; overload;
constructor Create(int n); overload;
constructor Create(String s); overload;
 
不是吧,你都有怀疑的?在DELPHI中支持重载不是很方便的吗!
 
连 Overload 都不用写,Delphi 本来就支持多构造函数:

TBtn = class(TButton)
public
constructor CreateA(AOwner: TComponent);
end;

constructor TBtn.CreateA(AOwner: TComponent);
begin
inherited Create(AOWner);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
With TBtn.CreateA(Self) do
begin
Parent := Self;
Visible := True;
end;
end;
 
覆盖就很方便的
 
To BaKuBaKu
根据Delphi的有关文献,Borland并不推荐使用多个构造函数使用不同的名字。
不行你是一下,编译的时候会有Warning的说。
 
cAkk:
晕了么?我和Pipi.早讨论过这个问题. :)
 
没有 Warning 啊,我是测试过后 Copy 上来的代码!:-(
 
接受答案了.
 
后退
顶部