<分区>
如何将返回基类型的基类的功能提取到继承类中?
我有一个基类 Chapter
和一个子类 EnhancedChapter
,它向 Chapter
添加了一些功能。
不幸的是,一个基类方法返回类类型。我可以在子类中访问此方法,但由于它返回基类型而不是子类型,因此我无法将其功能引入子类。
这是基类(Page
在别处实现,你会得到图片):
class Chapter
{
public List<Page> pages;
public Chapter()
{
pages = new List<Page>();
}
public Chapter CalculatedChapter(DateTime date)
{
pages.ForEach(p => p.CalculatedPage(date));
return this;
}
}
这是子类:
class EnhancedChapter : Chapter
{
public int? PageCount()
{
if (pages != null) return pages.Count; else return null;
}
}
现在,当我想在子类中使用 CalculatedChapter()
时,我遇到了问题:
EnhancedChapter enhancedChapter;
// won't work, returns Chapter not EnhancedChapter
enhancedChapter = new EnhancedChapter().CalculatedChapter(DateTime.Now);
我想到了一些选项,但并不适合我:我可以在这里进行强制转换,但这似乎很容易出错。我还考虑过以某种方式将 CalculatedChapter()
的结果提供给子类构造函数,但不知道该怎么做。