写出程序结果
class Super
{
int i = 0;
public Super(String s)
{
i = 1;
}
}
class Demo extends Super
{
public Demo(String s)
{
i = 2;
}
public static void main(String [ ] args)
{
Demo d = new Demo("yes");
System.out.println(d.i);
}
} 作者: 年少丶 时间: 2014-3-4 19:57
默认先调用父类的空构造方法作者: 心灵的一扇窗 时间: 2014-3-4 20:20
首先给你解释以上的报错信息:隐含的父类无参构造函数没有定义,必须明确地调用另一个构造函数
必须在父类中定义一个无参构造函数,原因是在子类使用它自己的构造函数对它的对象进行初始化时,会先调用父类的无参构造函数,
由于父类中定义了一个含参的构造函数,于是默认的无参构造函数就消失了,必须重新进行定义。
正确代码如下:
package com.ambow.answer;
class Super
{
int i = 0;
public Super(){
}
public Super(String s)
{
i = 1;
}
}
class Demo extends Super
{
public Demo(String s)
{
super();
i = 2;
}
public static void main(String [ ] args)
{
Demo d = new Demo("yes");
System.out.println(d.i);
}
}