关于方法重载和覆盖的笔记

最近做笔试题总是遇到覆盖重写,总是记不住,干脆写个笔记辅助记忆。
(不知是我太菜了还是黑皮书的翻译太拗口,本来想着Java语言规范这本书即使看不下去,拿来做工具书查也是好的,结果当工具书也看不懂x)

@Override
方法覆盖存在于子类和父类(接口)之间,遵循以下原则:
方法名字:必须相同
参数列表:必须相同

抛出异常:子类必须<=父类(子类抛出的异常类,必须与父类相同,或者是父类抛出的异常类的子类)
返回类型:子类必须<=父类(子类的返回类型,必须与父类相同,必须是父类的返回类型的子类)

访问权限:子类必须>=父类(例如public不能覆盖为protected)

俗称两同两小一大原则

Overload
方法重写:在一个类中定义多个重名的方法,遵循以下原则:
方法名字:必须相同
参数列表:必须不同,如果参数个数相同,必须保证参数的类型或者顺序不同。
返回类型、访问权限、没有要求。

关于方法重载和覆盖的笔记

http://blog.mothership.top/posts/eae8bdc4.html

作者

Mother Ship

发布于

2018-04-13

更新于

2023-02-13

许可协议

评论