当前位置: 技术问答>java相关
送分8
来源: 互联网 发布时间:2015-01-15
本文导语: class A { int i; A(int i) { this.i = i * 2; } } class B extends A { public static void main(String[] args) { B b = new B(2); } B(int i) { System.out.println(i); } } Select the one...
class A {
int i;
A(int i) {
this.i = i * 2;
}
}
class B extends A {
public static void main(String[] args) {
B b = new B(2);
}
B(int i) {
System.out.println(i);
}
}
Select the one right answer.
a) The instance variable i is set to 4
b) The instance variable i is set to 2
c) The instance variable i is set to 0
d) This code will not compile
选什么?为什么?
int i;
A(int i) {
this.i = i * 2;
}
}
class B extends A {
public static void main(String[] args) {
B b = new B(2);
}
B(int i) {
System.out.println(i);
}
}
Select the one right answer.
a) The instance variable i is set to 4
b) The instance variable i is set to 2
c) The instance variable i is set to 0
d) This code will not compile
选什么?为什么?
|
答案是D。
因为 B 的父类 A 没有无参的构造函数,因此在 B 的构造函数中必须有一个显式的父类的构造函数调用,形式为 super(i),否则,在构造 B 的时候,编译器无法先构造一个 A 对象,因为编译器无法插入一个隐式的 super()调用。
因为 B 的父类 A 没有无参的构造函数,因此在 B 的构造函数中必须有一个显式的父类的构造函数调用,形式为 super(i),否则,在构造 B 的时候,编译器无法先构造一个 A 对象,因为编译器无法插入一个隐式的 super()调用。
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。