java中⽅法重载和重写的区别
⽅法重载和重写,光从名称上来说,很类似,也很容易弄错,接下来我们先简述两者的区别和联系。
1. ⽅法重载
⾸先⽅法重载是同⼀个类中的不同⽅法间的关系,这些⽅法具有同名(⽅法名⼀样),但是具有不同的参数列表(参数的个数和参数的类型不同)。⽅法重载其实是同⼀个类中多态性的表现,调⽤者可以依据传⼊不同个数或者不同类型的参数来决定最终调⽤哪⼀个同名的⽅法。⽅法重载其实是程序编译时的多态性,即代码在编译的时候就决定了使⽤哪⼀个⽅法。
⽅法重载的原则:
1.1 两者的⽅法名称⼀致
1.2 必须具有不同的参数列表(参数的个数和参数的类型)
1.3 可以有不同的参数返回类型
1.4 可以有不同的访问修饰符
1.5 可以抛出不同的异常
2. ⽅法重写
⽅法重写是⼦类与⽗类间的关系,⼦类的⽅法与⽗类的⽅法具有相同的⽅法名,相同的返回类型,相同的参数列表。⽅法重写其实是⽗类与⼦类间的⼀种多态性的表现。⽅法重写其实是代码运⾏时的多态性,即只有在代码真正运⾏的时候,才能决定到底使⽤哪⼀个真正的⽅法。
⽅法重写的原则:
2.1 ⼦类不能重写⽗类中定义为final类型的⽅法
2.2 ⼦类中必须重写⽗类中定义为abstract
2.3 重写⽅法必须具有相同的参数列表(参数个数和参数类型)
2.4 重写⽅法必须具有相同的返回类型
2.5 ⼦类中重写的⽅法的访问修饰符⼀定要⼤于⽗类中被重写⽅法的访问修饰符(public>protected>default>private)
2.6 ⼦类中重写的⽅法⼀定不能抛出新的检查异常或者⽐⽗类中被重写的⽅法申明的更加宽泛的检查型异常,例如:⽗类中的⼀个⽅法抛出了⼀个IOException的异常,那么其⼦类中重写的该⽅法只能抛出IOException异常的⼦异常,不能抛出IOException的⽗异常(Exception)
2.7 ⽗类中的静态⽅法不能被重写的,⽗类中的⽅法不能被重写为静态⽅法java重写和重载的区别

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。