相关疑难解决方法(0)

覆盖构造函数

我对Overriding Constructors非常困惑.构造函数不能被覆盖是我在谷歌搜索它时得到的结果我的问题是

public class constructorOverridden {

    public static void main(String args[]) {
        Sub sub = new Sub();
        sub.test();
    }
}

class Super {
    Super() {
        System.out.println("In Super constructor");
        test();
    }

    void test() {
        System.out.println("In Super.test()");
    }
}

class Sub extends Super {
    Sub() {
        System.out.println("In Sub constructor");
    }

    void test() { // overrides test() in Super
        System.out.println("In Sub.test()");
    }
}
Run Code Online (Sandbox Code Playgroud)

当我运行这个时,我得到了结果

In Super constructor
In Sub.test()
In Sub constructor
In Sub.test()
Run Code Online (Sandbox Code Playgroud)

请注意,子类中的测试方法已执行.是否显示超级构造函数被覆盖.是否正确?

java oop

6
推荐指数
1
解决办法
1万
查看次数

Java:为什么"this()"没有被覆盖?

见下面的例子:

class A {
   A() { this(1); }
   A(int i) { System.out.println("A" );  }
}

class B extends A {
    B() {}
    B(int i) {  System.out.println("B" );  }
}

public class Test
{
    public static void main(String[] args)   {        
       A o =  new B();
    }
}
Run Code Online (Sandbox Code Playgroud)

输出:

A
Run Code Online (Sandbox Code Playgroud)

Q1:似乎java没有对"this(1)"执行后期绑定.它已在编译时决定.请确认.

Q2:Java不对任何构造函数执行后期绑定.请确认.

问题3:这是否意味着构造函数是隐式最终的?

java constructor overriding final this

4
推荐指数
1
解决办法
276
查看次数

标签 统计

java ×2

constructor ×1

final ×1

oop ×1

overriding ×1

this ×1