C# 抽象类构造函数
可能重复:C# 抽象类构造函数,c#,oop,C#,Oop,可能重复: 抽象类的构造函数可以标记为“抽象”吗?否。C#在任何版本中都不支持此功能。请注意,构造函数在派生类中不会被继承,尽管它们可以被“链接”。这可能就是你想要做的 如果希望指示派生类应该进行某种初始化,可以创建一个抽象的Initialise方法,或者基类(以及间接的子类)的构造函数在创建时调用的方法 另一方面,我不确定CLR(或相关的CIL语言)是否真的支持它——我怀疑它可能支持,尽管出于刚才提到的原因,它在C#中几乎没有什么用处。不,构造函数不能标记为抽象。在抽象类中,构造函数通常被标
抽象类的构造函数可以标记为“抽象”吗?否。C#在任何版本中都不支持此功能。请注意,构造函数在派生类中不会被继承,尽管它们可以被“链接”。这可能就是你想要做的 如果希望指示派生类应该进行某种初始化,可以创建一个抽象的
Initialise
方法,或者基类(以及间接的子类)的构造函数在创建时调用的方法
另一方面,我不确定CLR(或相关的CIL语言)是否真的支持它——我怀疑它可能支持,尽管出于刚才提到的原因,它在C#中几乎没有什么用处。不,构造函数不能标记为抽象。在抽象类中,构造函数通常被标记为受保护的,但至少我建议您这样做。基本上不是
如果它是抽象的,你必须在一个具体的子类中重写它,你不能重写构造函数,只能重载它。事实上,不管你是将它们标记为
受保护的还是普通的公共的,因为它们无论如何都只能通过在派生类中链接来访问!这么说来,从语义的角度来看,标记为受保护可能是明智的从权威语义学的角度看感性