标签:java 重载 覆盖
重载(overload) | 覆盖(override) | |
概念 | 存在于同一个类中的多个同名方法,返回值类型相同,参数列表不同 | 派生类重新定义与基类方法同名的方法,返回值类型和参数列表均相同,只是行为不同 |
出现位置 | 同一个类中 | 有继承关系的不同类中 |
返回值类型 | 相同 | 相同 |
参数列表 | 参数个数不同,或参数类型不同 | 相同 |
特点 | 与返回值类型无关,只关注参数列表 | (1)派生类方法可以分配与基类方法同样或更大的访问权限 (2)派生类不能覆盖标记为final的基类方法 (3)派生类方法可以抛出与基类方法相同的异常、子类异常、运行时异常或错误,但是不能抛出新的异常或超类异常 |
应用场景 | 完成同样任务且只是输入量不同的场景,使用同名方法便于阅读 | 需要重新定义继承行为的场景,这也往往是使用继承关系的主要目的 |
本文出自 “青春是人生的实验课” 博客,请务必保留此出处http://liusibo.blog.51cto.com/1382721/1921233
标签:java 重载 覆盖
原文地址:http://liusibo.blog.51cto.com/1382721/1921233