c#抽象类构造函数

时间:2013-05-30 15:34:55

标签: c# abstract-class

我在学习C#。我对抽象类有些担忧。抽象类不允许创建实例。为什么c#支持抽象类的构造函数。这里的主要目的是什么?

2 个答案:

答案 0 :(得分:5)

因为抽象类仍然可以将其作为构造的一部分进行初始化,并且虽然它不能直接实例化,但它仍然会被构造为实例化的继承类型的一部分,因此仍然需要自我和关注的创造控制程度。

答案 1 :(得分:0)

abstract类派生的类将需要一个实例构造函数来从其构造函数中“链接”。

正如Grant所说,抽象类的构造函数可能会设置很多(“具体”)状态,这是抽象类可能具有的。

注意:抽象类型的实例构造函数永远不会public。由于你问题的原因,这会令人困惑。改为使用protected(或可能internal protected internal)或private)。

如果 您没有显式编写任何实例构造函数,编译器将为您生成一个“默认”构造函数,它将为protected一个抽象类。