当前位置: 首页 > 编程语言 > C#

C#不从基类继承构造函数中共享

时间:2023-04-10 11:04:47 C#

当定义一个继承自基类的类时,我必须重新定义它的所有构造函数。我想知道为什么C#不支持从基类继承构造函数?构造函数不被继承是因为我们无法正确判断一个派生类对象是如何被实例化的。当所有派生类都隐式使用父类的构造函数时,在我看来这似乎是个问题,因为如果我们忘记重新定义构造函数,那么对象可能会被错误地初始化。如果你想让派生类的构造函数和父类的构造函数做同样的事情,用base调用它。另请注意,如果您不调用任何其他显式采用参数的基类构造函数,则基类构造函数(不带参数)会自动运行。所以调用base()是多余的。类只能继承成员变量和成员方法。派生类的构造函数在Java术语中隐式调用基类或超类的构造函数。在继承中,所有基类构造函数按照它们在类层次结构中出现的顺序在派生类构造函数之前被调用。现在,如果基类有多个构造函数,派生类必须定义应该调用哪一个。例如:publicclassCoOrds{privateintx,y;公共CoOrds(){x=0;y=0;}publicCoOrds(intx,inty){this.x=x;这个.y=y;}}//继承CoOrds:publicclassColorCoOrds:CoOrds{publicSystem.Drawing.Colorcolor;publicColorCoOrds():base(){color=System.Drawing.Color.Red;}publicColorCoOrds(intx,inty):base(x,y){color=System.Drawing.Color.Red;}}更多信息:http://msdn.microsoft.com/en-us/library/ms228387(v??=vs.80).aspx以上是C#学习教程:C#不分享基础的所有内容类继承构造函数。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,并不代表侵权,如有侵权,请点击右边联系管理员删除。如需转载请注明出处: