更新:用一个更简单的例子来解决问题,原来接受的答案没有回答
鉴于以下类及其祖先:
TComputer = class(TObject)
public
constructor Create(Teapot: string='');
end;
TCellPhone = class(TComputer)
public
constructor Create(Cup: Integer); overload; virtual;
constructor Create(Cup: Integer; Teapot: string); overload; virtual;
end;
Run Code Online (Sandbox Code Playgroud)
现在TCellPhone有3个构造函数可见:
我该怎么做才能TCellPhone使祖先构造函数(Teapot: string = '')不可见,只留下声明的构造函数:
注:通常简单的行为有一个后代的构造函数隐藏了祖先:
Run Code Online (Sandbox Code Playgroud)TCellPhone = class(TComputer) public constructor Create(Cup: Integer); virtual; end;
- 杯子:整数
如果你想保留祖先构造函数和后代,你可以将后代标记为
overload:Run Code Online (Sandbox Code Playgroud)TCellPhone = class(TComputer) public constructor Create(Cup: Integer); overload; virtual; end;
- 杯子:整数
- 茶壶:string =''
在这个问题的示例代码中,Delphi误解了我的 …