方法重载vs方法重写

重写

重写是什么意思?有什么规则?
顾名思义就是把方法重新写一遍,什么时候写呢?子类继承父类方法时写。

1.发生在父类与子类之间
2.方法名,参数列表,返回类型,必须相同。简称同名同参
3.访问修饰符的限制一定要大于被重写方法的访问修饰符(关于访问限定符的具体细节,另一篇博客有些。)
4非检查异常:重写方法可以抛出任何非检查的异常,无论被重写方法是否查明了该异常
5、检查异常:重写方法一定不能抛出新的检查异常,或比被重写方法声明的检查异常更广的检查异常
6、不能重写标志为final、static的方法

重载

重载 总结:
1、参数列表:被重载的方法必须改变参数列表
2、返回类型:可以改变返回类型
3、修饰符:可以改变修饰符
4、异常:可以声明新的或者更广泛的异常
5、重载Overload是一个类中多态性的一种表现
6、重载的时候,返回值类型可以相同也可以不相同。无法以返回型别作为重载函数的区分标准

说了这么多,那面试官要是真问起来,我们该怎么回答呢?

重载是一个类,多个方法的方法名相同但是参数不同(与返回类型,修饰符无关)。重写是在子类和父类之间,子类的返回类型、方法名、参数、修饰符都与父类的方法一致,在继承的情况下才能谈重写。而重载是可以在任何环境下都可以使用的。两者都是实现多态的方式,区别在于前者实现的是编译时的多态性,而后者实现的是运行时的多态性。重载对返回类型没有特殊的要求,不能根据返回类型进行区分。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值