首先有一个基础抽象类:
public abstract class PolicyDetailed
{
internal abstract DataContainer GetActiveAsset();
}
接下来有另一个抽象类,它是通用的:
public abstract class PolicyDetailed<T> : PolicyDetailed where T : DataContainer
{
internal new abstract T GetActiveAsset();
}
最后还有一个特定的策略类。AccidentContainer继承自DataContainer:
public class PolicyAccident : PolicyDetailed<AccidentContainer>
{
internal override AccidentContainer GetActiveAsset()
{
return null;
}
}
编译时我遇到了以下错误:
'PolicyAccident' does not implement inherited abstract member 'PolicyDetailed.GetActiveAsset()'
我不确定我应该在这里使用哪些修饰符才能使它工作。也许我还应该写出我想要实现的内容:我有一组不同类型的策略对象(例如PolicyAccident,PolicyTravel等),它们从具有不同类型DataContainer的PolicyDetailed继承而来(AccidentContainer,TravelContainer等)。我想在不知道它们特定类型并通过PolicyDetailed引用它们的情况下调用每个对象的“GetActiveAsset”方法。同时,我希望每个类都返回其特定的Datacontainer子类。这可能吗?