子类重写父类方法时,如父类中的方法返回值是void和基础数据类型,则子类重写时必须相同。
当重写的方法在父类中返回的是引用类型时,子类重写的该方法,返回的引用类型,只能小于等于该引用类型。小于等于指继承关系。
如:
class A{
public B getB() {
return null;
}
public A getA() {
return null;
}
}
class B extends A{
public A getB() {//父类中此方法返回B类型,重写后试图返回A类型,编译报错
return null;
}
public B getA() {//父类中此方法返回A类型,重写后返回比A类型小的B类型不报错
return null;
}
}
原文:https://www.cnblogs.com/Scorpicat/p/12027936.html