如有不足或错误的地方,欢迎讨论指正。
总结
-
子父类之间具有继承关系
-
必须保证子父类之中的方法名称、参数列表都要相同
与方法重载相区别
-
子类方法的返回类型和父类的返回类型一样,或者是父类返回类型的子类。
-
子类方法的权限必须 大于等于 父类方法的权限。
小扩展提示:public > protected > (default) > private
备注:(default) 不是关键字 default,而是什么都不写,留空。 -
重写方法不能抛出新的异常或者比被重写方法声明的检查异常更广的检查异常。
但是可以抛出更少,更有限或者不抛出异常。
注意:这种限制只是针对检查异常,至于运行时异常 RuntimeException 及其子类不再这个限制之中。
注意事项:
- 不能重写被 final 修饰的方法
- 父类中被 private 修饰的方法无法被继承,更不能被重写。
- 构造方法不能被继承,不能被覆盖。
简单示例
1、子父类具有继承关系
2、子父类中方法的方法名称和参数列表要相同
3、返回值类型
返回值类型如果是基本类型:子类的返回值类型和父类返回值类型必须相同
返回值类型如果是引用类型:子父类返回值类型可相同,也可以是父类返回值类型的子类
4、权限修饰符
子类的权限可以和父类一样,也可以大于父类的权限
权限范围:public > protected > (default)什么都不写 > private
子类权限缩小,则会报错
5、抛出的异常
重写方法不能抛出新的异常或者比被重写方法声明的检查异常更广的检查异常。
但是可以抛出更少,更有限或者不抛出异常。
注意:这种限制只是针对检查异常,至于运行时异常 RuntimeException 及其子类不再这个限制之中。