我有一门课A
,A_sub
是内心的一门课A
。
public class A {
protected class A_sub {
int A_sub_x = 1;
A_sub parent;
A_sub(A_sub obj_A_sub) {
System.out.println("Constructor A.A_sub");
parent = obj_A_sub;
}
}
public A() {
System.out.println("Constructor A");
}
}
然后我有一个带有方法的类Main
(扩展了A
)main
。Main
也有一个内部类A_sub
(扩展了A.A_sub
)。但是我在super()
说“构造函数A.A_sub()未定义” 的行上收到一条错误消息。我该如何解决?
class Main extends A{
public Main() {
}
private class A_sub extends A.A_sub{
int A_sub_z;
A_sub(A_sub obj_A_sub) {
super();
System.out.println("Constructor Main.A_sub");
A_sub_z = 3;
}
}
public static void main(String args[]) {
Main obj = new Main();
A_sub obj_sub = obj.new A_sub(null);
System.out.println(obj_sub.A_sub_x);
System.out.println(obj_sub.A_sub_z);
}
}
确实没有构造函数,因为A$A_sub.A_sub()
-您拥有的构造函数带有一个A_sub
参数。解决此问题的一种方法是将pass Main$A_sub.A_sub
的参数传递给其父级的构造函数:
class Main extends A{
private class A_sub extends A.A_sub{
int A_sub_z;
A_sub(A_sub obj_A_sub) {
super(obj_A_sub);
// Here-^
System.out.println("Constructor Main.A_sub");
A_sub_z = 3;
}
}
// The rest of Main's constructors and methods have been snipped for brevity
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句