可能重复:
Why can’t I create an abstract constructor on an abstract C# class?
抽象类的构造函数可以标记为“抽象”吗?
答案 0 :(得分:18)
没有。 C#在任何版本中都不支持此功能。请注意,构造函数在派生类中不是继承,尽管它们可以“链接”。这可能就是你想要做的事情。
如果要表明派生类应该进行某种初始化,可以创建一个抽象的Initialise
方法,或者基类的构造函数(以及子类的间接)调用的方法在创作上。
作为一个侧面点,我不确定CLR(或相关的CIL语言)是否真的支持它 - 我怀疑它可能,但由于刚才提到的原因,它在C#中几乎没有用处。
答案 1 :(得分:18)
不,构造函数不能标记为抽象。在抽象类中,构造函数通常标记为protected
,至少这是我建议你做的。
答案 2 :(得分:2)
基本上没有。
如果它是抽象的,你必须在具体的子类中覆盖它,并且你不能覆盖构造函数,只能重载它。