3

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

4

2 回答 2

7

阅读这篇文章以获得清晰的概念。http://docs.oracle.com/javase/tutorial/java/IandI/override.html

一般我们在想扩展超类的方法或者想改变完整的逻辑时这样做。

例如:超类有使用冒泡排序的排序方法。

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

第二

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

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

于 2013-02-03T11:51:39.700 回答
1

发生的事情正是注释中写的。

您覆盖该方法,而不是运行该方法的父代码,而是运行当前类的代码

于 2013-02-03T11:50:49.560 回答