我差不多完成了迁移.NET环境的软件。现在我正在处理所有警告并清理它们。然后,我遇到了这个问题。
这是我的班级:
TColorObj = class
value:double;
thecolor:Color;
Constructor;
method ReadColor(bdr:BinaryReader);
method WriteColor(bdw:BinaryWriter);
method Clone:TColorObj;
method ToString:String; Override; <<<<----this method is raising error.
end;
错误是“无法覆盖访问权限低于基本方法的方法。”但是,如果我删除关键字覆盖,则会引发警告消息,“ToString”会隐藏父方法。“TColorObj类不会从任何基类继承,如您所见。
那么,我是否将TColorObj类公开?
任何帮助或提示都将不胜感激。
答案 0 :(得分:4)
您需要将ToString
方法设置为公开可见性,这就是TObject
中的方法。你无法将它从“公共”移动到后代的较低能见度。
TColorObj = class
value:double;
thecolor:Color;
Constructor;
method ReadColor(bdr:BinaryReader);
method WriteColor(bdw:BinaryWriter);
public
method Clone:TColorObj;
method ToString:String; Override; <<<<----this method is raising error.
end;
答案 1 :(得分:1)
如果您没有指定从Object
类继承的类,则每个类都继承自另一个类。
您正在重审公共的ToString
方法,因此您必须公开覆盖方法。