覆盖/更改实现 java 接口的最终类​​方法

nis*_*lot -1 java overriding final

Java - 我有一个接口 InterfaceA,它具有三个方法 - method1、method2、method3。

最终类实现此接口。这个类和接口位于 Jar 中,并且它们的实现未知。

类的方法 method2 未按预期工作。我可以通过哪些可能的方式来正确实现/覆盖此方法。

Jor*_*lla 5

在 Java 中,你不能扩展 Final 类。


所以唯一的方法是编写你自己的类

  • 你自己的方法实现
  • 其他情况下调用final类方法

class Third implements TheInterfaceInQuestion {

    FinalClass fc;

    public Third() {
       fc = new FinalClass();
    }

    @Override
    public void method1() {
        // call final class implementation
        fc.method1();
    }

    @Override
    public void method2() {
        // new implementation
    }

    @Override
    public void method3() {
        // call final class implementation
        fc.method3();
    }

}
Run Code Online (Sandbox Code Playgroud)