0

我几乎完成了为 .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;

错误是“无法覆盖访问权限低于基本方法的方法。” 但是,如果我删除关键字Override,它会引发一条警告消息,“ToString”隐藏了一个父方法。” TColorObj 类不是从任何基类继承的,如您所见。

那么,我是否将 TColorObj 类公开?

任何帮助或提示将不胜感激。

4

2 回答 2

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;
于 2012-08-09T13:12:01.100 回答
1

每个类都继承自另一个类,如果您不指定从该类继承的Object类。

您正在覆盖公开的ToString方法,因此您还必须将覆盖的方法公开。

于 2012-08-09T13:18:07.193 回答