【发布时间】:2012-05-24 13:10:41
【问题描述】:
如果我想要一个只能从子类访问的构造函数,我可以在构造函数中使用protected 关键字。
现在我想要相反的。
我的子类应该有一个可以被其基类访问但不能从任何其他类访问的构造函数。
这可能吗?
这是我当前的代码。问题是子类有一个公共构造函数。
public abstract class BaseClass
{
public static BaseClass CreateInstance(DataTable dataTable)
{
return new Child1(dataTable);
}
public static BaseClass CreateInstance(DataSet dataSet)
{
return new Child2(dataSet);
}
}
public class Child1 : BaseClass
{
public Child1(DataTable dataTable)
{
}
}
public class Child2 : BaseClass
{
public Child2(DataSet dataSet)
{
}
}
【问题讨论】:
-
我不确定这是否可能,知道子类的基类有点违背我对继承的理解
-
@DanF 你是对的,但是知道
Child1和Child2的BaseClassFactory类是正常的,并且会有同样的问题。
标签: c# .net inheritance constructor