是否有可能重写在C#构造函数?(Is it possible to override a const

2019-06-25 22:22发布

是否有可能重写基类的构造函数在派生类?

如果是这样,怎么能完成以及在什么情况下使用这将是可行的? 如果不是,为什么不呢?

Answer 1:

不,你不能覆盖的构造。 这个概念使得在C#中没有任何意义,因为根本构造并不多态调用。 你总是说出你想要哪一个类来构建和参数构造函数。

构造函数是不能继承在所有 - 但是从派生的类必须链要么在同一个类另一个构造,或在基类的构造函数之一所有构造。 如果你不这样做明确,编译器隐含链的基类的参数的构造函数(和一个错误,如果该构造函数不存在或无法访问时)。



Answer 2:

不,构造函数是不可继承。 你不能在派生类中覆盖它们。
原因

一个基类的构造将永远被调用,对于每一个从物体下降类,因为每个类都必须至少有一个构造函数调用基()构造函数(显式或隐式)和每一个呼叫到这个()构造函数必须最终调用基()构造。



Answer 3:

不,你不能覆盖的构造。

如果你看看构造函数的基本语法,它应具有相同的名称,你写它的类。

比方说,你写的具有相同名称作为基类(同基类的构造函数)的方法,它只是会是在派生类中没有指定返回类型,这是语法不正确的新方法。



文章来源: Is it possible to override a constructor in C#?