标题: 关于Super出错的问题 [打印本页] 作者: 杨华威 时间: 2012-3-18 12:09 标题: 关于Super出错的问题 代码如下:
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);
}
}
//错误: 无法将类 Super中的构造器 Super应用到给定类型
为什么?作者: 蒙武辉 时间: 2012-3-18 12:18
class Super
{
int i=0;
public Super(String s)
{
i=1;
}
}
class Demo extends Super
{
public Demo (String s)
{
super(s);//应该调用父类的构造函数给子类初始化
// i=2;
}
public static void main(String[] args)
{
Demo d = new Demo("yes");
System.out.println(d.i);
}
}
作者: 魏群 时间: 2012-3-18 12:25
创建子类是只是调用父类默认的构造器(没有参数) 如果父类上有多个构造器,子类创建时要指明掉用父类的哪个构造器。应该写class Demo extends Super
{
public Demo (String s)
{
super(2);
i=2;
}
public static void main(String[] args)
{
Demo d = new Demo("yes");
System.out.println(d.i);
}
}
或在父类上加以个无参数的构造器 public Super(){}作者: 朱辉 时间: 2012-3-18 12:31