如何从具有受保护数据类型的 class 继承?
How to inherit from a class with a protected data type?
我有一个基本泛型 class,内部受保护 class。我如何从基础 class 继承并访问受保护的内部 class?
例如,此代码将无法编译:
unit uFoo;
interface
type
TFoo<T> = class
protected
type
TFooProtected = class
end;
end;
TFoo2<T> = class(TFoo<T>)
protected
item: TFooProtected;
end;
像这样:
type
TFoo<T> = class
protected
type
TFooProtected = class
end;
end;
TFoo2<T> = class(TFoo<T>)
protected
item: TFoo<T>.TFooProtected;
end;
请注意,这与泛型无关。它对内部声明类型的任何 class 有效。
我有一个基本泛型 class,内部受保护 class。我如何从基础 class 继承并访问受保护的内部 class?
例如,此代码将无法编译:
unit uFoo;
interface
type
TFoo<T> = class
protected
type
TFooProtected = class
end;
end;
TFoo2<T> = class(TFoo<T>)
protected
item: TFooProtected;
end;
像这样:
type
TFoo<T> = class
protected
type
TFooProtected = class
end;
end;
TFoo2<T> = class(TFoo<T>)
protected
item: TFoo<T>.TFooProtected;
end;
请注意,这与泛型无关。它对内部声明类型的任何 class 有效。