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

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

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

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

全部评论

相关推荐

点赞 评论 收藏
分享
10-06 12:46
门头沟学院 Java
跨考小白:定时任务启动
点赞 评论 收藏
分享
11-08 17:36
诺瓦科技_HR
点赞 评论 收藏
分享
比亚迪汽车新技术研究院 硬件工程师 总包21左右 硕士
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务