覆盖已弃用的方法是不好的做法吗?

Is it bad practice to override a deprecated method?

由于方法 show() 已被弃用,此代码是否是不良做法?可以在这里覆盖吗?

public class Window extends JFrame {

    public Window() {
        // Do things.
    }

    public void show() { // <- Comes up with a warning as deprecated code.
        // Do other things.
    }
}

当您扩展的是 class 时,最好 避免重写已弃用的方法 ,因为在未来的版本中 when/if已删除,并且您需要升级到更新版本的库,您将不得不重新使用已弃用的已删除方法

如果在您的实例中这是 JFrame class that you're extending, and you intend to override the show() method, you can instead override the setVisible(boolean b) method (doc) which is the replacement for the show() method as mentioned in the javadoc

此外,不建议覆盖基础 class 方法并完全改变其功能,因为

  • 您不能将此方法用于其原始用例
  • 该方法的意图变得具有误导性并且重写该方法毫无意义,而您实际上可以创建一个清楚表明其功能的新方法