首先看一下方法重载(Overload),回顾方法重载的条件:
➢ 方法名称相同;
➢ 方法参数类型、个数、顺序至少有一个不同 ;
➢ 方法的返回类型可以不同,因为方法重载和返回类型没有任何关系 ;
➢ 方法的修饰符可以不同,因为方法重载和修饰符没有任何关系 ;
➢ 方法重载只出现在同一个类中 。
方法的覆盖(Override)的条件:
➢必须要有继承关系;
➢覆盖只能出现在子类中,如果没有继承关系,不存在覆盖,只存在重载 ;
➢在子类中被覆盖的方法,必须和父类中的方法完全一样,也就是方法名,返回类型、 参数列表,完全一样;
➢子类方法的访问权限不能小于父类方法的访问权限 ;
➢子类方法不能抛出比父类方法更多的异常,但可以抛出父类方法异常的子异常 ;
➢父类的静态方法不能被子类覆盖(不被称为覆盖),静态方法处理的时候,访问权 限发生错误也会提示覆盖 ;
➢父类的私有方法不能覆盖 ;
➢覆盖是针对成员方法,而非属性。