Java中方法重载和重写的区别

本文详细阐述了Java中方法重载和重写的概念及区别。重载发生在同一类或子类中,关键在于方法名相同但参数列表不同;而重写发生在继承关系中,强调的是方法签名的匹配及访问权限、返回类型和异常处理的规则。理解这两者的差异对于Java编程至关重要。
摘要由CSDN通过智能技术生成

Java中方法重载和重写的区别

重载

  • 重载发生在一个类中或子类中,通常体现在构造方法的重载  
  • 重载的规则是:方法名相同,参数列表不同,方法能够在一个子类中被重载

重写 

  • 重写通常发生在继承关系中,通常体现在子类对父类方法的重写
  • 重写的规则是: 

                      1.参数列表与被重写的方法的参数列表必须相同

               2.返回类型与被重写的方法的返回类型可以不同,但是必须是父类返回值的派生类(java5以前的版本返回类型要求一样,java7以后的版本可以不同)

               3.访问权限不能比父类被重写的方法的访问权限更低,列如:如果父类的一个方法声明为public,那么子类重写该方法就不能声明为protected

               4.父类的成员方法只能被他的子类重写

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

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

               7.子类和父类在同一个包中,那么可以重写父类所有方法,除了声明为private和final的方法

               8.子类和父类不在同一个包中,那么子类只能够重写父类的声明为public和protected的非final的方法

              9.重写的方法能够抛出任何非强制异常,如果抛出异常,重写的方法不能抛出新的强制性异常,或者比被重写方法声明的更广泛的强制性异常,反之则可以

              10.构造方法不能被重写。

注意:编译器认为在参数类型中(int [] arr)和(int...   arr)这两种表示的是一样的

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

谛仙0

本人已实现,编写不易

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值