方法重载
定义:在同一个类中,允许存在一个以上的同名方法,只要他们的参数个数或者参数类型或者参数顺序(参数列表)不同即可。
法则: 两同,一不同
两同:
1.同一个类中。
2.方法名相同。
一不同:
参数列表不同:(参数个数,参数类型,参数顺序)和方法的返回值和修饰符无关。
方法覆写
定义:方法的覆写是发生继承的关系当中的,子类覆写父类的相关方法。
法则: 一同两小一大
一同:父类方法和子类方法的的方法签名(方法名和参数列表)必须相同;
两小:
1.允许子类方法返回的类型是父类方法返回值类型的子类或相同;(子类可以返回更明确(小)的类型)
2.子类方法声明抛出的异常应比父类方法声明抛出的异常更小或者相等。
一大:子类方法的访问权限应比父类方法更大或者相等。
判断方法是否是覆写方法的必杀技:在覆写方法上 @Override就可以判断
Overload与Override的区别
区别点 | 重载(Overload) | 覆写(Override) |
判断规则 | 两同一不同 | 一同两小一大 |
权限 | 没有权限要求 | 被覆写的方法不能拥有比父类更严格的权限 |
范围 | 发生在一个类之中 | 发生在继承关系中 |
术语 | overload | override |
多态 | 编译时多态 | 运行时多态 |