当前位置: 技术问答>java相关
scjp一个问题???????????????
来源: 互联网 发布时间:2015-03-10
本文导语: class Super{ public int i=0; public Super(String text){ i=1; } } public class Sub extends Super { public Sub (String text){ i=2; } public static void main(String args[]){ Sub sub = new Sub ("hello"); System.out.println(sub.i); } } 我也认为编...
class Super{
public int i=0;
public Super(String text){
i=1;
}
}
public class Sub extends Super
{
public Sub (String text){
i=2;
}
public static void main(String args[]){
Sub sub = new Sub ("hello");
System.out.println(sub.i);
}
}
我也认为编译失败,但说不清楚为什么????
public int i=0;
public Super(String text){
i=1;
}
}
public class Sub extends Super
{
public Sub (String text){
i=2;
}
public static void main(String args[]){
Sub sub = new Sub ("hello");
System.out.println(sub.i);
}
}
我也认为编译失败,但说不清楚为什么????
|
最好的办法就是编译一下试试
|
子类的构建器被调用时,会首先去调用夫类没有参数的构建器。
构建器是不会被继承的,因为你的父类里没有不带参数的构件器,所以
程序会出错。
构建器是不会被继承的,因为你的父类里没有不带参数的构件器,所以
程序会出错。
|
class Super{
public int i=0;
public Super(String text){
i=1;
}
public Super(){i=1;}
}
public class Sub extends Super
{
public Sub(){i=2;}
public Sub (String text){
i=2;
}
public static void main(String args[]){
Sub sub = new Sub ("hello");
System.out.println(sub.i);
}
}
public int i=0;
public Super(String text){
i=1;
}
public Super(){i=1;}
}
public class Sub extends Super
{
public Sub(){i=2;}
public Sub (String text){
i=2;
}
public static void main(String args[]){
Sub sub = new Sub ("hello");
System.out.println(sub.i);
}
}
|
搞错搞错,呵呵,不好意思
class Super
{
public int i=0;
public Super(String text)
{
i=1;
}
}
public class Sub extends Super
{
public Sub(String text)
{
super(text);
i=2;
}
public static void main(String args[])
{
Sub sub = new Sub ("hello");
System.out.println(sub.i);
}
}
搞定了,子类的构造器一定要显式调用super(参数表),否则系统会默认提供一个super();
class Super
{
public int i=0;
public Super(String text)
{
i=1;
}
}
public class Sub extends Super
{
public Sub(String text)
{
super(text);
i=2;
}
public static void main(String args[])
{
Sub sub = new Sub ("hello");
System.out.println(sub.i);
}
}
搞定了,子类的构造器一定要显式调用super(参数表),否则系统会默认提供一个super();