我看到的每个地方都有博客,内容和注释,这些注释表明不能实例化Abstract类。
现在在C#中,我创建了一个示例代码,如下所示:
public abstract class Fundamental
{
public Fundamental()
{
Console.WriteLine("This is an abstract constructor");
}
}
现在,为什么comipler建议必须保护构造函数。为什么它甚至允许构造函数。
我知道我们可以做这样的类实例化
Fundamental instance = new LessFundamental();
根本性较弱的地方:
public class LessFundamental : Fundamental { }
但是为什么要构造函数。我也可以在此抽象类构造函数上使用内部的,受保护的公共对象。在某些地方提到了
您仍然可以扩展抽象类并调用抽象类' 派生类中的构造函数
但是什么时候需要它?
它可以满足哪种设计方案
答案 0 :(得分:3)
不能直接实例化。但是它可以从继承于该抽象类的子类中获取。因此,如果只能从子类实例化它,则构造函数应为protected
而不是public
。