重写
为什么需要学习方法重写?
父类的功能实现无法满足子类的需求,需要重写
重写的特点:
- 1.发生在具有 子 父 类 两 个 关 系 的 类 中 \color{red}{子父类两个关系的类中} 子父类两个关系的类中
- 2.方法名称相同
- 3.参数的列表完全相同
- 4.返回值类型可以相同也可以是其子类
- 5.
访
问
权
限
修
饰
符
不
能
够
严
于
父
类
\color{red}{访问权限修饰符不能够严于父类}
访问权限修饰符不能够严于父类
如:子类中方法:public void meth(){}
父类中方法:protected void meth(){} - 6.
抛
出
的
异
常
不
能
比
父
类
的
异
常
更
大
\color{red}{抛出的异常不能比父类的异常更大}
抛出的异常不能比父类的异常更大
如:子类中抛出:nullPointerException
父类中抛出:Exception - 7.重写是多态的必要条件
- 8.私有修饰的方法不能够被继承,就更不可能被重写
面试题: 重写和重载的区别
主要考虑方法名相同的情况下,形参数目,形参类型,形参顺序
特
别
注
意
:
重
载
时
:
∗
∗
返
回
值
∗
∗
和
∗
∗
访
问
权
限
修
饰
符
无
关
∗
∗
不
一
样
的
返
回
值
会
报
错
\color{red}{ 特别注意:重载时:**返回值**和**访问权限修饰符无关** 不一样的返回值会报错}
特别注意:重载时:∗∗返回值∗∗和∗∗访问权限修饰符无关∗∗不一样的返回值会报错