重载(Overload)和重写(Override)的区别?

答:方法的重载和重写都是实现多态的方式,区别在于前者实现的是编译时的多态性,而后者实现的是运行时的多态性。

重载发生在一个类中,同名的方法如果有不同的参数列表(参数类型不同、参数个数不同或参数顺序不同)则视为重载,重载对返回类型没有特殊的要求,不能根据返回类型进行区分。

重写发生在子类与父类之间,有时子类并不想原封不动的继承父类中的某个方法,而是在方法名、参数列表、返回类型(子类中方法的返回类型也可以是父类中返回类型的子类)都相同的情况下, 对方法体进行重写。要求子类被重写的方法与父类中被重写的方法有兼容的返回类型,比父类被重写方法更好访问(public>protected>default>private),不能比父类被重写方法声明更多的异常。

全部评论

相关推荐

一个菜鸡罢了:哥们,感觉你的简历还是有点问题的,我提几点建议,看看能不能提供一点帮助 1. ”新余学院“别加粗,课程不清楚是否有必要写,感觉版面不如拿来写一下做过的事情,教育经历是你的弱势就尽量少写 2. “干部及社团经历”和“自我评价”删掉 3. 论文后面的“录用”和“小修”啥的都删掉,默认全录用,问了再说,反正小修毕业前肯定能发出来 4. 工作经验和研究成果没有体现你的个人贡献,着重包装一下个人贡献
点赞 评论 收藏
分享
10-05 23:02
东北大学 Java
我说句实话啊:那时候看三个月培训班视频,随便做个项目背点八股,都能说3 40w是侮辱价
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务