首页 > 代码库 > 比较Java方法的重载与覆盖

比较Java方法的重载与覆盖



重载(overload)覆盖(override)
概念存在于同一个类中的多个同名方法,返回值类型相同,参数列表不同派生类重新定义与基类方法同名的方法,返回值类型和参数列表均相同,只是行为不同
出现位置
同一个类中有继承关系的不同类中
返回值类型
相同相同
参数列表参数个数不同,或参数类型不同相同
特点与返回值类型无关,只关注参数列表

(1)派生类方法可以分配与基类方法同样或更大的访问权限

(2)派生类不能覆盖标记为final的基类方法

(3)派生类方法可以抛出与基类方法相同的异常、子类异常、运行时异常或错误,但是不能抛出新的异常或超类异常

应用场景完成同样任务且只是输入量不同的场景,使用同名方法便于阅读需要重新定义继承行为的场景,这也往往是使用继承关系的主要目的


本文出自 “青春是人生的实验课” 博客,请务必保留此出处http://liusibo.blog.51cto.com/1382721/1921233

比较Java方法的重载与覆盖