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);
}
}
what is the result?
A. compile will fail
B. compile success and print "0"
C. compile success and print "1"
D. compile success and print "2"
选什么啊.谢谢.最好能解释下.
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);
}
}
what is the result?
A. compile will fail
B. compile success and print "0"
C. compile success and print "1"
D. compile success and print "2"
选什么啊.谢谢.最好能解释下.
public int i=0;
public Super(String text){
i=1;
}
}
public class Sub extends Super{
public Sub(String text){
super();//这是默认调用的,所有都是如此。
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()
{}
}
这样就OK了,因为你写了一个带参数的所以把那个默认屏蔽了,所以不带参数自己加上去,
public class Sub extends Super{
public Sub(String text){
super(text);
i=2;
}
---------------------------------------------------
为什么必须加上这句.我是重载父类的构造.还要显示调用父类的?