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

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

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

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

全部评论

相关推荐

05-07 17:58
门头沟学院 Java
wuwuwuoow:1.简历字体有些怪怪的,用啥写的? 2.Redis 一主二从为什么能解决双写一致性? 3.乐观锁指的是 SQL 层面的库存判断?比如 stock > 0。个人认为这种不算乐观锁,更像是乐观锁的思想,写 SQL 避免不了悲观锁的 4.奖项证书如果不是 ACM,说实话没什么必要写 5.逻辑过期时间为什么能解决缓存击穿问题?逻辑过期指的是什么 其实也没什么多大要改的。海投吧
简历中的项目经历要怎么写
点赞 评论 收藏
分享
qq乃乃好喝到咩噗茶:院校后面加上211标签,放大加粗,招呼语也写上211
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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