如果超构造函数中有参数,则超类内部类的构造函数未定义

H42:

我有一门课AA_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(扩展了AmainMain也有一个内部类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);

    }
}
Mureinik:

确实没有构造函数,因为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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将参数传递给超类构造函数,而不必在子类构造函数中重复

如何拦截超类构造函数的参数?

内部类中有两个声明的构造函数

调用超类构造函数

超类构造函数调用应在构造函数主体中

具有超类的Kotlin构造函数

是否有可能避免重写子类中的所有超类构造函数参数?

Javascript将变量参数传递给超类构造函数

具有签名匹配超类构造函数的Kotlin自动派生类构造函数

超类'Bloc <xxx,xxx>'在dart中没有零参数构造函数

当其超类具有较少参数时,如何为子类构造函数添加更多参数?

从超类的构造函数中调用子类的构造函数

用户定义的构造函数重载与参数的超类的重载参数不匹配

Python中具有不同参数列表的超类的构造函数

消除与超类的类字段同名的构造函数参数的歧义

调用超类构造函数的MATLAB超类

Java自定义异常中的超类构造函数

构造扩展具有自己的构造函数的超类的对象

超级构造函数是否没有超类?

隐式调用超类中的无参数构造函数

超类子类构造函数java

NPE关于构造函数和超类

子类调用超类构造函数

java有多个超类的构造函数

来自 Java 超类构造函数访问的 Kotlin 构造函数

Java - 覆盖从外部类继承泛型的内部类时出现“名称冲突”和“构造函数未定义”错误

超类应该有构造函数吗?

在多重继承中执行超类的所有构造函数

构造函数参数未定义?