C#从泛型继承类作为类型

Gui*_*meA 0 c# generics inheritance

我有一个泛型问题.我是那些课:

abstract class BaseTestClass<T> : where T : class, new()
{
   //base test class implementation
   public abstract void Run(BaseDataClass<T> data);
}

class BaseDataClass<T> : where T : class, new()
{
   //base data class implementation
}

class DataA : BaseDataClass<SettingsA>
{
   //some stuff
}

class TestA : BaseTestClass<SettingsA>
{
   //Works!
   public override void Run(BaseDataClass<SettingsA> data)
   {
   }
   //Doesn't Work!
   public override void Run(DataA data)
   {
   }

}
Run Code Online (Sandbox Code Playgroud)

我的问题是,为什么我不能在抽象方法中使用继承的类?

[编辑]编译时的错误是:

TestA没有实现继承的抽象成员Run(BaseDataClass)

Sim*_*Var 5

你可以,但是BaseTestClass<SettingsA>基类根本没有覆盖签名的方法Run(DataA),只有一个签名Run(BaseDataClass<DataA>).

通用继承还意味着通用T类型是相同的.