当前位置: 技术问答>java相关
我也问道题
来源: 互联网 发布时间:2015-05-23
本文导语: 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 ag[]){ Sub sub=new Sub(“Hello”); System.out.println(sub.i); } } output what? ...
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 ag[]){
Sub sub=new Sub(“Hello”);
System.out.println(sub.i);
}
}
output what?
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 ag[]){
Sub sub=new Sub(“Hello”);
System.out.println(sub.i);
}
}
output what?
|
应该2,你写的,意思我懂,编译器不懂,嘿嘿
|
1,首先应该在Sub的构造函数的第一句加上:super(text);吧
2,输出为2
2,输出为2
|
在构赵函数加入super(text);或者重载无参数super构赵函数!
2
2
|
对, 增加super类的构造函数: public super();
或者在 sub的构造函数中调用: super(text);
或者在 sub的构造函数中调用: super(text);
|
//Super.java
class Super{
public int i=0;
public Super(String text){
i=1;
}
}
//Sub.java
public class Sub extends Super{
public Sub(String text)
{
super(text);
i=2;
}
public static void main(String ag[]){
Sub sub=new Sub("Hello");
System.out.println(sub.i);
}
}
输出:
2
class Super{
public int i=0;
public Super(String text){
i=1;
}
}
//Sub.java
public class Sub extends Super{
public Sub(String text)
{
super(text);
i=2;
}
public static void main(String ag[]){
Sub sub=new Sub("Hello");
System.out.println(sub.i);
}
}
输出:
2
|
如果类没有默认的自变量,或者想调用含有一个自变量的某个基础类构建器,必须明确地编写对基础类的调用代码。这是用super关键字以及适当的自变量列表实现的.
如果不调用基础类构建器,编译器就会报告自己找不到一个构建器。除此以外,在衍生类构建器中,对基础类构建器的调用是必须做的第一件事情(如操作失当,编译器会向我们指出)。
如果不调用基础类构建器,编译器就会报告自己找不到一个构建器。除此以外,在衍生类构建器中,对基础类构建器的调用是必须做的第一件事情(如操作失当,编译器会向我们指出)。
|
2
|
不能通过编译
|
编译不通过。
|
子类重载父类有参构造器
super(args...);先
super(args...);先
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。