什么是重载or重写,二者的区别是?
【摘要】
目录
1.重写2.重载3.重载(Overload) 和重写(Override) 的区别?
1.重写
重写必须满足如下条件: (1)方法的返回值类型必须相同。 (2)方法的参数个数必须相...
1.重写
重写必须满足如下条件:
(1)方法的返回值类型必须相同。
(2)方法的参数个数必须相同。
(3)方法的参数对应的数据类型必须相同。
(4)子类方法不得降低父类同名方法的访问级别。
另外
- 被重写的方法发生在父类与子类之间
- 方法名。参数列表,返回值类型相同
- 重写的访问修饰符的权限一定要大于被重写的访问修饰符的权限
- 重写方法一定不能抛出 新的异常,或者比重写方法更宽泛的异常。
- 被final关键字修饰的方法不能被重写
- 构造方法不能被重写
- 子类的访问级别不能低于父类 的访问级别
2.重载
- 参数类型。顺序和个数至少有一个不同
- 重载发生在一个类中
- 不能重载只有返回值不同的方法名
- 构造方法可以重载
3.重载(Overload) 和重写(Override) 的区别?
-
方法的重载和重写都是实现多态的方式,区别在于前者实现的是编译时的多态性,而后者实现的是运行时的多态性。
-
重载发生在一个类中,同名的方法如果有不同的参数列表(参数类型不同、参数个数不同或者二者都不同)则视为重载;重写发生在子类与父类之间,重写要求子类被重写方法与父类被重写方法有相同的参数列表,有兼容的返回类型,比父类被重写方法更好访问,不能比父类被重写方法声明更多的异常(里氏代换原则)。
-
重载对返回类型没有特殊的要求,不能根据返回类型进行区分。
文章来源: jianguo.blog.csdn.net,作者:坚果前端の博客,版权归原作者所有,如需转载,请联系作者。
原文链接:jianguo.blog.csdn.net/article/details/106793291
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)