方法重写(@Override)
——发生在继承中,超类与派生类中。
遵循“两同两小一大”原则
“两同”:方法名相同,参数类型相同,方法体不同。(方法签名:方法名+参数)
“两小”:
子类(派生类)方法返回类型小于等于父类(超类)方法返回类型
- 返回值为void(无参)时,返回值类型必须相同
- 基本数据类型返回值类型必须相同
- 引用数据类型
派生类抛出异常小于等于超类方法抛出异常[1]
“一大”:
派生类访问权限大于等于超类方法返回权限[2]
方法重写是“运行期绑定”:
编译.java文件时,假如.class字节码中保存的是一个类中的某个方法,但是在加载运行.class文件时,底层先去查看是否存在方法重写,有:那么运行重写后的方法,没有:运行原方法。
方法重载(@OverLoad)
方法重载:同一类中,方法名相同,参数列表不同,方法体不同,与返回值类型及参数名无关
方法重载是“编译期绑定”:
在绑定的时候看对象的绑定类型,当引用与对象是同一类中,编译.java文件时就已经确定了需要执行哪个方法



