我有一个愚蠢的混淆,当我们覆盖父类方法然后这个派生的重写方法仍然保存父类方法的代码,或者它是一个我们可以定义的新方法?
答案 0 :(得分:6)
阅读本文以明确概念。 http://docs.oracle.com/javase/tutorial/java/IandI/override.html
通常我们想要扩展超类的方法或者想要改变完整的逻辑。
对于ex:超类有排序方法,使用冒泡排序。
在Derived类中,您希望采用相同的方法,但希望实现快速排序。然后我们覆盖。
第二
如果你想首先执行超类方法然后你的子类覆盖方法逻辑,那么我们使用super.methodname()
。
你的问题的最后一点如果你重写方法而不是像super.method()
那样称为超类方法,那么它并不意味着它的新方法。这意味着我已经解释了这个例子。
答案 1 :(得分:1)
完全注释中写的是什么。
重写方法,而不是运行方法的父代码,它运行当前类的代码