具有简单的对象层次结构,如下所示
TLiveThing=class
protected
FTest:string;
constructor Create(whereLive:string);overload;virtual;
constructor Create(haveBone:Boolean);overload;virtual;
end;
THuman=class(TLiveThing)
public
constructor Create(whereLive:string);overload;override;
constructor Create(age:integer);overload;
end;
理论上,如果我实例化 THuman,我有 2 个构造函数,但实际上我有 5 个由代码洞察显示的构造函数,实际上我想看到 3 个构造函数,- Create(whereLive:String),覆盖 - Create(age:integer) -创建(有骨:整数)
human:=THuman.Create( <=====in there I have 5 suggestion constructor
为什么我有这种奇怪的行为?如何解决它,因为它太烦人了,我不能总是检查我需要实例化的类,如果我像下面这样实例化
human:=THuman.Create(); <===== it doesnt give me error
我如何完全隐藏我的锚点构造函数?,因为如果我像上面那样实例化,完全给我一个错误的对象
更新:而且我也可以从 TObject 中看到没有参数的默认创建