【发布时间】:2020-10-31 12:07:11
【问题描述】:
我有一个类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);
}
}
【问题讨论】:
-
因为父类没有默认构造函数,所以报错!
标签: java inheritance constructor subclass superclass