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

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

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

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

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-02 18:35
简历上把1个月实习写成了3个月,会进行背调吗?
码农索隆:一个月有一个月的实习经历,三个月有三个月的实习经历
点赞 评论 收藏
分享
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-01 11:27
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务