嗯,我有一个父类,其中在“ protected ”选项卡中声明了一个带有 protected 类变量的嵌套类。在另一个单元中,我有一个子类,它继承自父类。当我尝试访问 protected 内容时/public 来自父类 - 它可以工作,但是当我尝试访问受嵌套类保护的内容时,它不起作用。
type
TParent = class(TObject)
protected
class var x:integer;
type
TNested = class(TObject)
protected
class var y:integer;
end;
end;
我在子类中的代码:
x := 10; //works
y := 10; //undeclarated idenitifier 'y'.
TNested.y := 10; //undeclarated idenitifier 'y'
子类的声明是:
type
TChild = class(TParent);
我如何访问 y?
最佳答案
y:integer 是 TNested 类的 protected 字段,即。只能由 TNested 及其自己的继承类使用。
您可能可以使用 TParent 中的 TNested,但这是因为在 Delphi 中,如果从同一单元调用,您可能拥有比应有的更大的访问权限。因此 TParent 和 TNested 位于同一单元,因此您可以从 TParent 调用 TNested protected 数据。但由于 TChild 与 TNested 位于不同的单位,因此这是不可能的。
关于delphi - 嵌套类可以继承吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1158143/