首先要知道的是:被final、private、static修饰的方法不能被重写
如下图,当A类继承了B类时,如果两个类中的方法都是static修饰,则子类无法重写父类的方法
有上图可以看到,当两个方法都是static修饰的时候,所能调用的方法值只与等号左边的类型有关。
并且方法的类型必须相同,否则报错:
当不是静态方法时,子类可以重写父类;根据下图可以看出,当不是静态方法时,对象调用方法只和等号右边有关。
所以说,方法的重写只和非静态有关,静态方法无法重写。且方法的不能是私有的(private)
上图可以看出当子类的方法的权限大于父类方法权限时也可以重写,反之当子类方法的权限小于父类时则会报错,即范围只能被扩大但不能缩小,如下图:
重写要求:方法名和返回值必须一样
多级重写要注意的细节