I'm studying C#. I have some concerns about the abstract class. abstract class does not allow to create instance. Why does c# support constructor for abstract class. What is the main purpose here?
问问题
146 次
2 回答
5
因为抽象类仍然可以将需要初始化的东西作为其构造的一部分,虽然它不能直接实例化,但它仍然会作为被实例化的继承类型的一部分进行构造,因此仍然需要那种程度的创建控制它的自我和关注。
于 2013-05-30T15:36:55.257 回答
0
从您的类派生的abstract
类将需要一个实例构造函数来“链接”它们的构造函数。
正如格兰特所说,您的抽象类的构造函数可能会设置您的抽象类可能具有的许多(“具体”)状态。
注意:抽象类型的实例构造函数不应该是public
. 由于您问题中的原因,这将令人困惑。让它们protected
代替(或可能internal
(不 protected internal
)或private
)。
如果您没有显式编写任何实例构造函数,编译器将为您生成一个“默认”构造函数,这将是protected
一个抽象类。
于 2013-05-30T15:43:20.503 回答