多态是Java面向对象编程的三大特点之一,多态是同一个行为具有多个不同表现形式或形态的能力,通过继承的上下转型、接口的回调以及 方法的重写和重载 可以实现多态。


方法重写

  如果从父类继承或接口实现的方法,不满足子类的需求,可以对其进行改写,这就是方法重写。

目的:父类的功能无法满足子类的需求,需要重写功能。

特点:

  • 发生在具有子类父类两个关系的类中;
  • 方法名相同;
  • 参数的列表完全相同;
  • 返回值类型可以相同或者是其子类;
  • 访问权限修饰符不能够严于父类;
  • 抛出的异常不能比父类的异常大;
  • 私有修饰符的方法不能被继承,更不能被重写;
  • 构造方法不能被重写;
  • 是多态的必要条件;

方法重载

  重载常用于构造方法中,构造方法重载要求,定义在同一个类中,方法名相同,参数的个数、顺序、类型不同。

目的:解决参数个数、类型、顺序不一致、方法名一致的重命名问题的情况

特点:

  • 发生在同一个类中;
  • 方法名称相同;
  • 参数列表不同;
  • 参数的个数、顺序、类型不同;
  • 和返回值类型以及访问权限修饰符、异常声明没有关系;
  • 是多态的一种表现形式;
  • 重载的精确性原则,就是赋给变量值的时候要按照变量的规则赋值;