抽象类的构造函数

时间:2019-01-14 10:49:55

标签: c# constructor abstract-class

我看到的每个地方都有博客,内容和注释,这些注释表明不能实例化Abstract类。

现在在C#中,我创建了一个示例代码,如下所示:

public abstract class Fundamental
{
    public Fundamental()
    {
        Console.WriteLine("This is an abstract constructor");
    }
}

现在,为什么comipler建议必须保护构造函数。为什么它甚至允许构造函数。

我知道我们可以做这样的类实例化

Fundamental instance = new LessFundamental();

根本性较弱的地方:

public class LessFundamental : Fundamental { }

但是为什么要构造函数。我也可以在此抽象类构造函数上使用内部的,受保护的公共对象。在某些地方提到了

  

您仍然可以扩展抽象类并调用抽象类'   派生类中的构造函数

但是什么时候需要它?

它可以满足哪种设计方案

1 个答案:

答案 0 :(得分:3)

不能直接实例化。但是它可以从继承于该抽象类的子类中获取。因此,如果只能从子类实例化它,则构造函数应为protected而不是public