重载(Overload)和重写(Override)的区别是什么?

北战南征 提交于 2020-02-22 15:52:48

  首先java程序的运行分为编译和运行两部分。

  所以重载和重写在这一点就有很明显的区别,因为重写方法的方法名和参数个数类型都一样,所以在java虚拟机的编译阶段是识别不出重写的方法的不同,在运行期间才可以看出不同点。而重载在编译过程就已经暴露了他的不同点,虽然方法名相同,但是参数个数类型都不同。简单的说,就是编译器一个可以区分不同,一个不可以区分不同。

  同样java多态针对的是重写,而不是重载,就像射箭一样,重写是在一个弓上射了一个箭,这个箭是可以变化的,重载实在一个弓上射很多只箭。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!