黑马程序员技术交流社区
标题:
编译失败,因为父类中缺少空参数的构造函数
[打印本页]
作者:
limxing
时间:
2015-1-6 17:21
标题:
编译失败,因为父类中缺少空参数的构造函数
//14、写出程序结果,这个题 我没搞明白,大神给我说说吧
class Super
{
int i=0;
public Super(String s)
{
i=1;
}
}
class Test14 extends Super
{
public Test14(String s)
{
i=2;
}
public static void main(String[] args)
{
Test14 t=new Test14("yes");
System.out.println(t.i);
}
}
//编译失败,因为父类中缺少空参数的构造函数
//或者子类应该通过Super语句指定要调用的父类中的构造函数。
作者:
小僧玄奘
时间:
2015-1-6 20:29
自己定义带参的构造函数一定要定义一个无参的构造函数!
作者:
小僧玄奘
时间:
2015-1-6 20:30
class Super
{
int i=0;
public Super(String s)
{
i=1;
}
public Super()
{
}
}
作者:
bjuth
时间:
2015-1-6 20:36
子类第一行默认有super(),调用父类空参数的构造函数
public Test(String s) {
//super();//默认调用
i = 2;
}
复制代码
如果父类没有构造函数时,默认会自动创建一个空参数的构造函数,这个问题也就不会出现
坏就坏在父类有一个有参数的构造函数
public Super(String s) {
i = 1;
}
复制代码
所以它就没有自动创建空参数的构造函数了
解决这个问题就是必须要传参数
public Test(String s) {
super(s);
i = 2;
}
复制代码
作者:
bjuth
时间:
2015-1-6 20:37
对 ls那个自己给父类写个空参数的构造函数也行:)
作者:
叫我王大锤
时间:
2015-1-6 21:21
楼上的楼上给解释完了- -。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2