【发布时间】:2017-03-17 06:44:20
【问题描述】:
我只是在获得关于如何最好地组织继承的一些建议。我有一个类(如下)需要使用基本 ExportData 类中的大部分类,并覆盖其中一些类:
public class ExtendedExportData : ExportData
{
private tData _Data;
private ResStrings _diaStrings;
public ExtendedExportData(tData Data, ResStrings diaStrings)
: base(tData, diaStrings)
{
_tData = Data;
_diaStrings = diaStrings;
}
}
在这种情况下,不需要调用基类构造函数,因为上述类中使用的基类方法都不需要初始化,只有在直接为其他类创建基类的实例时才需要构造函数(详细)目的。
如果我删除基本构造函数,我会在子类构造函数上得到一个错误,说基本构造函数不接受 0 参数。我怎样才能避免这种情况?
这是基类:
public class ExportData
{
private tData _Data;
private ResStrings _diaStrings;
public ExportLines(tData Data, ResStrings diaStrings)
{
_Data = Data;
_diaStrings = diaStrings;
}
}
提前致谢。
【问题讨论】:
-
请显示基类
ExportData只需为其添加一个默认构造函数 -
您的代码确实实例化了基类的一个实例。这就是继承的意思——
ExtendedExportData是ExportData的一个实例。如果ExportData的字段对ExtendedExportData没有意义,则说明您存在设计错误 -
您可以在 ExportData 类中创建空的受保护构造函数,然后从 ExtendedExportData (:base()) 调用它。
标签: c# inheritance