1.关于子类方法重写父类方法遵循“两同两小一大”的规则
两同:(1)方法名 (2)形参列表
两小:(1)子类返回值类型比父类更小或相等 (2)子类声明抛出的异常应比父类小或者相等
一大:(1)子类权限比父类大或相等
上述的规则都很容易理解:
需要注意的是:如何理解子类返回类型比父类更小或相等。
相信很多新手跟我一样,会理解成int范围比long范围小,那么是否可以重写父类方法时,把原来的父类方法返回值long改为int呢?
答案是:不可以。
原因:返回值类型比父类的要小,返回值类型一定是有父子关系才行的,基本类型之间没有父子关系。
下面是代码示例:(注意到Student是Person的子类)
class A {
public Person test(int x) {
return null;
}
}
class B extends A {
public Student test(int x){
return null;
}
}
class Person {
}
class Student extends Person {
}
时间: 2024-10-11 03:42:39