Java重写是如何工作的

Java重写是如何工作的,java,oop,overriding,Java,Oop,Overriding,我有一个愚蠢的困惑,当我们重写父类方法时,那么这个派生的重写方法是否仍然保留父类方法的代码,或者它是一个我们可以定义的新方法?发生的正是注释中所写的 重写该方法,而不是运行该方法的父代码,而是运行当前类的代码。阅读本文以明确概念 通常,当我们想要扩展超类的方法或者想要改变完整的逻辑时,我们会这样做 对于ex:超类有使用冒泡排序的排序方法 在派生类中,您希望采用相同的方法,但希望实现快速排序。然后我们做覆盖 秒 如果您想先执行超类方法,然后子类重写方法逻辑,那么我们使用super.methodna

我有一个愚蠢的困惑,当我们重写父类方法时,那么这个派生的重写方法是否仍然保留父类方法的代码,或者它是一个我们可以定义的新方法?

发生的正是注释中所写的


重写该方法,而不是运行该方法的父代码,而是运行当前类的代码。阅读本文以明确概念

通常,当我们想要扩展超类的方法或者想要改变完整的逻辑时,我们会这样做

对于ex:超类有使用冒泡排序的排序方法

在派生类中,您希望采用相同的方法,但希望实现快速排序。然后我们做覆盖

如果您想先执行超类方法,然后子类重写方法逻辑,那么我们使用
super.methodname()


问题的最后一点,如果您重写了该方法,而没有像
super.method()
那样调用超类方法,那么这并不意味着它是新方法。这意味着我已经解释了排序示例。

。。。如果您不明确地调用
super.method()
,一点推理就能给出答案。如果您的方法还包括重写的父类方法的代码,那么就不需要super.foo()。或者,如果它这样做了,将会出现混乱,因为您,开发人员,将无法选择是否调用重写的超级方法。但是,您的方法不会“保存”除您编写的代码之外的任何代码。