一、方法覆盖(Override)的原则:3同2小1大
3同:
1、同为类方法或同为实例方法
2、方法名相同
3、形参列表相同
2小:
1、子类方法的返回值类型应比父类方法的返回值类型更小或相等
2、子类方法声明抛出的异常应比父类方法声明抛出的异常更小或相等
1大:
子类方法的访问权限应比父类方法的访问权限更大或相等
二、简单分析
如果系统检测到子类的两个方法的方法名相同、形参列表不同,那么系统就会认为这是方法的重载(不再检测方法的其它内容,比如修饰符、返回值类型等)。
如果系统检测到子类的两个方法的方法名相同、形参列表也相同, 那么系统就会认为这是方法的覆盖,进而再检测是否满足覆盖原则,如果满足则编译通过,否则报错。