加深Java重写父类方法的理解

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 {

}

原文地址:https://www.cnblogs.com/houxi/p/4440956.html