请看一下我的班级结构。我想我想从继承中获得更多的乐趣。
首先有一个基础抽象类:
public abstract class PolicyDetailed
{
internal abstract DataContainer GetActiveAsset();
}
接下来是另一个抽象类,它是通用的:
public abstract class PolicyDetailed<T> : PolicyDetailed where T : DataContainer
{
internal new abstract T GetActiveAsset();
}
最后是一个特定的策略类。意外容器继承自 DataContainer:
public class PolicyAccident : PolicyDetailed<AccidentContainer>
{
internal override AccidentContainer GetActiveAsset()
{
return null;
}
}
在编译期间,我收到以下错误:
'PolicyAccident' does not implement inherited abstract member 'PolicyDetailed.GetActiveAsset()'
我不确定我应该在这里使用什么修饰符来让它工作。也许我还应该写下我想要实现的目标:我有一组不同类型的策略对象(例如 PolicyAccident、PolicyTravel 等),这些对象从 PolicyDetailed 继承,具有不同类型的 DataContainer(AccidentContainer、TravelContainer 等)。我想在不知道它们的具体类型并通过 PolicyDetailed 引用它们的情况下对它们中的每一个调用“GetActiveAsset”方法。同时我希望每个类都返回它们特定的 Datacontainer 子类。那可能吗?