51 方法重写需要注意的地方
权限修饰符需要注意的地方
派生类重写超类中的方法的权限修饰符,只能比超类的该方法的权限修饰符大或一样大。
权限修饰符的大小顺序:public default protected private
如超类中某方法的权限修饰符为:protected
则它的派生类重写此方法时可以使用:protected default public
返回值需要注意的地方
子类重写父类方法时,如父类中的方法返回值是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; } }