类继承的问题+构造函数
我定义了一个类,如果构造函数为空,那么可以有继承函数
如果构造函数有参数,那么就不能有继承函数。
为什么啊?
错误在哪里?
运行提示 不能什么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型!