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)
你可以,但是BaseTestClass<SettingsA>基类根本没有覆盖签名的方法Run(DataA),只有一个签名Run(BaseDataClass<DataA>).
通用继承还意味着通用T类型是相同的.