继承方法的重写规则

在Java面向对象的三大特性继承关系中,子类会自动继承父类中公共的方法,有时在子类中需要对继承的方法进行一些修改,即对父类方法进行重写。例如下面代码:
继承方法的重写规则

方法的重写(override)

重写规则之一:由于多态的原因,重写方法不能比被重写方法限制有更严格的访问级别。(但是可以更广泛,比如父类方法是包访问权限,子类的重写方法是public访问权限。

将继承的父类方法默认的default改为private就会报错。例:

继承方法的重写规则
继承方法的重写规则无法降低从父类继承来的方法的可见度

重写规则之二:方法名称,返回类型和参数列表必须与被重写方法的相同。还有个跟重写很像的方法叫重载。如果子类方法的参数与父类对应的方法不同,那是重载,不是重写。

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

重写规则之四:不能重写被标识为final的方法。

重写规则之五:如果一个方法不能被继承,则不能重写它。(重写的目的是为了子类扩展父类的功能,没有关系的类重写不叫重写,叫重新(全新)实现了)