方法的重写需要遵循“两同两小一大”的规则——“两同”:方法名相同,形参列表相同;“两小”:指的是子类方法返回类型应比父类方法返回类型更小或者相等
八大基本类型大小
- byte 8bit
- short 16bit
- char 16bit
- int 32bit
- float 32bit
- long 64bit
- double 64bit
“一大”指的是子类方法的访问权限应比父类方法的访问权限更大或者相等
还需要注意的是重写的方法和被重写的方法必须都是类方法或实例方法(有无static方法修饰,有的则为类方法,无则属于实例方法),不能一个是类方法一个是实例方法,不然编译的时候就会报错。
特殊情况1.0:
当想修改父类中由private修饰的方法时:
我们知道private修饰的方法是禁止子类访问的,所以在子类中重写该方法时,就不能说是重写了,而是在子类中重新定义了一个方法。
特殊情况2.0:
当想在子类的方法中调用父类被覆盖的方法时:
可以用super来调用父类被覆盖的实例方法
super是java里的一个关键字,用于限定对象调用他从父类继承到的实例变量或方法
需要注意的是正如之前说super是限定对象的,所以在有static修饰的方法中不能出现super,static修饰的方法属于类,而super是属于对象。