读书人

类继承的有关问题+构造函数

发布时间: 2012-01-29 21:39:32 作者: rapoo

类继承的问题+构造函数
我定义了一个类,如果构造函数为空,那么可以有继承函数
如果构造函数有参数,那么就不能有继承函数。
为什么啊?
错误在哪里?
运行提示 不能什么0个参数的重载。

[解决办法]
说起来很简单

编译器会给类一个默认的构造函数,但当你写了任何一个构造函数时,就覆盖了编译器提供的这个构造函数,所以一个良好的习惯是,即使你提供了带参数的构造函数,也要提供无参的构造函数

而子类实例对象时肯定要调用父类的构造函数,而你又没有提供父类的默认函数,就会报这样的错误了
[解决办法]
楼主是这样写的代码吧

C# code
public class cls1{  public cls1 (int i, string s)  {  }}public class cls2 : cls1{  public cls2 ()  {  }}
[解决办法]
探讨
没有提供父类的默认函数 是什么意思?

[解决办法]
简而言之,就是在写类的时候保留默认的无参构造函数。
要用有参数的可以重载。
[解决办法]
引用修改下2楼的代码

public class cls1
{
public cls1()
{
}

public cls1 (int i, string s)
{
}
}

public class cls2 : cls1
{
public cls2 () : base() //在这里我添加一个"base()"调用父类无参数构造函数,这样对用构造函数的调用顺序看的应该清楚点吧
{
}
}

[解决办法]
可以这样写,不过cls2 myclass2=new cls2(110,119,"火警")这句错了,cls2中第三个参数为int型!

读书人网 >C#

热点推荐