关于方法重载和覆盖的笔记
最近做笔试题总是遇到覆盖重写,总是记不住,干脆写个笔记辅助记忆。
(不知是我太菜了还是黑皮书的翻译太拗口,本来想着Java语言规范这本书即使看不下去,拿来做工具书查也是好的,结果当工具书也看不懂x)
@Override
方法覆盖存在于子类和父类(接口)之间,遵循以下原则:
方法名字:必须相同
参数列表:必须相同
抛出异常:子类必须<=父类(子类抛出的异常类,必须与父类相同,或者是父类抛出的异常类的子类)
返回类型:子类必须<=父类(子类的返回类型,必须与父类相同,必须是父类的返回类型的子类)
访问权限:子类必须>=父类(例如public不能覆盖为protected)
俗称两同两小一大原则
Overload
方法重写:在一个类中定义多个重名的方法,遵循以下原则:
方法名字:必须相同
参数列表:必须不同,如果参数个数相同,必须保证参数的类型或者顺序不同。
返回类型、访问权限、没有要求。
关于方法重载和覆盖的笔记