如何从具有受保护数据类型的 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 有效。