[TOC]

重写(override)

重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。即外壳不变,核心重写!

重写的好处在于子类可以根据需要,定义特定于自己的行为。 也就是说子类能够根据需要实现父类的方法。

Java重写的7个规则

1 访问修饰符的限制一定要不小于被重写方法的访问修饰符

比如:Object类有个toString()方法, 开始重写这个方法的时候我们总容易忘记public修饰符, 出错的原因就是:没有加任何访问修饰符的方法具有包访问权限, Default访问权限小于Public访问权限, 所以编译器出错。

2 参数列表必须与被重写方法的相同

3 返回类型必须与被重写方法的返回类型相同

4 重写方法不能抛出新的异常或者比被重写方法声明的检查异常更广的检查异常。但是可以抛出更少,更有限或者不抛出异常

5 如果一个方法不能被继承, 则不能重写它(如:父类private方法)

6 不能重写被标识为final的方法

7 静态方法不能被重写

重载(overload)

重载是在一个类里面,方法名字相同,而参数不同。返回类型可以相同也可以不同。

每个重载的方法(或者构造函数)都必须有一个独一无二的参数类型列表。

重载规则

  • 被重载的方法必须改变参数列表(参数个数或类型不一样)
  • 被重载的方法可以改变返回类型
  • 被重载的方法可以改变访问修饰符
  • 被重载的方法可以声明新的或更广的检查异常
  • 方法能够在同一个类中或者在一个子类中被重载
  • 无法以返回值类型作为重载函数的区分标准

eg: 构造方法不能被 override(重写),但是可以 overload(重载),所以你可以看到一个类中有多个构造函数的情况。

Copyright @doctording all right reserved,powered by Gitbook该文件修改时间: 2023-04-02 19:14:11

results matching ""

    No results matching ""