Override,Overload,Overwrite到底有什么区别?

Override,Overload,Overwrite的区别

方 法的覆盖(Override)是指子类重写从父类继承来的一个同名方法(参数、返回值也同),马克-to-win:此时子类将清除父类方法的影响,实现自 身的行为。实在想用原来的,可以用super。顺便说,overload指同名方法,通过不同的参数样式共存,有时用这个,有时用那个。参数样式指,不同 的参数类型,不同的参数个数,不同的参数顺序,返回值不起作用。再顺便说,比较权威公开的著作,都支持overwrite在java中不存在的说法。作者 认为overwrite这个概念,需要正式提出来与否是看提出它以后,对某种学术现象是否有帮助。override和overload的提出,对于某些现 象,大家定义了这两个名词以后,解释起来很容易。而overwrite显然不具备这种功效。学术名词的定义显然不如compiler更实力 派,compiler说怎么样就怎么样。我们看看下面的一个实用的例子。此例子证明,compiler(编译器)一定是按照先子类,后父类,先精确匹配, 后模糊匹配的顺序。

例1.5.3
class AAAMark_to_win {
    double f(double x, double yMark_to_win) {
        return x * yMark_to_win;
    }
    double f(int x, double y) {
        return x * y*2;
    }
}
class BBB extends AAAMark_to_win {
    double f(double x, double y)
    {
        return x + y;
。。。。。。。。。。。
详情请见:http://www.mark-to-win.com/JavaBeginner/JavaBeginner3_web.html#DifferenceOverrideOverloadOverwrite
阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭