- 方法重写遵循 ‘两同两小一大’ 原则:
- 3.1)相同
- 3.1) 方法名称相同
- 3.2) 参数列表相同
- 3.2 两小:
- 3.2.1) 派生类方法的返回值类型小于或等于超类的方法、
- void 时,必须相等
- 基本类型时,必须相等
3)引用类型时,小于或等的
- 3.2.2) 派生类方法抛出的异常小于或等于超类方法的
- 3.3) 一大:
- 3.3.1) 派生类方法的访问权限大于或等于超类方法的
class Coo {
void show() {
}
double test() {
return 0.0;
}
Doo say() {
return null;
}
Coo sayHi() {
return null;
}
}
class Doo {
/*
* 编译错误, void 时必须相等
* int show() { return 1; }
*/
/*
* 编译错,基本类型时必须相等
* int test() { return (float)0.0; }
*/
// 编译错误,引用类型必须小于或等于
Coo say() {
return new Coo();
}
// 正确
Doo sayHi() {
return null;
}
}