java基础:重载和重写的区别

重写(Override)

  • 重写是子类对父类的扩展,是一个垂直关系;
  • 重写的定义:https://www.jianshu.com/p/836d3aaad32d

重载(Overload)

  • 必须有不同的参数列表
  • 同一个类内部的事,属于水平关系
  • 可以有不同的返回值类型
  • 可以抛出不同的异常
  • 构造方法可以被重载(这一点和重写不同
  • 注意:不能以返回值类型来区分重载方法,只能以“参数列表”和“类名”来区分

分析

  • 重载和重写是Java多态的不同表现
  • 重写是父类与子类之间多态性的表现,在运行时起作用(动态多态性,动态绑定)
  • 重载是一个类中多态的表现,在编译时起作用(静态多态性,静态绑定)

动态绑定

  • 在Java中重写可以被认为是动态绑定的最佳示例,因为父类和子类具有相同的方法 - 也就是说,它不决定要调用的方法。

静态绑定

  • 在静态绑定中,绑定可以在运行时或编译时解析。所有static,final和private方法的绑定过程都是在编译期完成的。

静态绑定和动态绑定的基本要点

在这里,我们将讨论与Java中的静态和动态绑定相关的一些重要问题:

  • 私有,final和静态个体利用静态权威,而虚拟技术则限制在运行时期间根据运行时对象完成。
  • Java中的静态绑定使用官方类型数据,而Java限制中的动态绑定使用对象来确定绑定。
  • 使用静态绑定来解决重载方法,同时利用动态绑定(即在运行时)重写方法。

你可能感兴趣的:(java基础:重载和重写的区别)