重写与重载

      重写(覆盖)

子类对父类的允许访问的方法的实现过程进行重新编写,返回值和形参都不能改变;(外壳不变,核心重写),子类可以根据需要重写父类的方法;

 

注意:如果父类的一个方法申明了一个检查异常IOException,但是在重写这个方法的时候不能抛出Exception异常,因为Exception是IOException的父类,只能抛出IOException 的子类异常.

 

在面向对象原则里,重写就意味可以重写任何现有的方法.

 

重写的规则:

1.   参数列表和返回值类型必须和被重写的方法完全相同

2.   访问权限子类必须大于等于父类

3.   父类的方法只能被它的子类重写

4.   声明为final的方法不能被重写

5.   声明为static的方法不能被重写,但是能被再次声明

6.   在同一包内,子类可以重写除了声明为private和final的方法;

7.   在不同包内.子类子只能重写声明为public和protected的非final方法;

8.   构造方法不能被重写

9.   如果不能继承一个方法就不能重写这个方法

 

 

重载

在同一个类中,方法名相同.而参数列表不同(参数类型,参数个数,参数顺序),与返回值无关

 

重载规则:

1.   被重载的方法必须改变参数列表

2.   可以改变返回值类型,也可以不改变

3.   可以改变访问的修饰符

4.   被重载的方法可以声明新的更广的检查异常

5.   方法能够在同一个类中或者在同一个子类中被重载

 

区别点             重载                重写

参数列表          必须修改          一定不能修改

返回值类型       可以修改          一定不能修改

异常                可以修改          可以减少或者删除,一定不能抛出新的或

                                  者更广的异常

访问                可以修改          一定不能做更严格的限制(可以降低限制)

 

重载是一个类的多态性表现

重写是子类与父类的一种多态表现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值