【Java】Java中重写与重载的区别

  1. 重写
    • 发生在父类与子类之间
    • 方法名,参数列表,返回类型(除子类中方法的返回类型是父类中返回类型的子类)必须相同
    • 访问修饰符的限制一定要大于被重写方法的访问修饰符(public>protected>default>private)
    • 重写方法一定不能抛出新的检查异常或者比被重写方法申明更加宽泛的检查型异常
  2. 重载
    • 重载Overload是一个类中多态性的一种表现
    • 重载要求同名方法的参数列表不同(参数类型,参数个数甚至是参数顺序)
    • 重载的时候,返回值类型可以相同也可以不相同。无法以返回型别作为重载函数的区分标准
  3. 总结
重载 重写(也称覆盖)
英文 overloading overriding
定义 方法名相同,参数列表不同(参数的类型、个数甚至顺序不同),对返回值无要求 方法名称,参数列表,返回值类型,完全相同
权限 对权限没有要求 被重写的方法不能拥有比父类更加严格的权限
范围 发生在同一个类中 发生在继承中