重载(overload)
重载出现的原因:一个方法名可能需要返回不同的值,传入不同的参数
方法重载是在一个类里面或在子类里边,具有相同的方法名,不同的参数列表,返回值可以相同,也可以不同
1、被重载的方法,参数列表一定不同
2、方法的返回值类型和访问修饰符不做要求
3、被重载的方法可以声明新的或更广泛的检查异常
4、方法能够在同一个类中或者在一个子类中被重载
5、返回值类型不做判断方法是否被重载的标准
重写(override)
重写出现的原因:原本父类中的方法功能不满足现在的需求
方法重写是在继承类中进行重写,也就是子类中,相同的方法名,相同的参数列表,返回值不变或为子类
规则:
1、重写是对父类允许访问的方法的实现过程进行重新的编写,返回值类型不变或为子类,形参列表不变,访问控制权限符不能严于父类
2、子类可以重写父类中除构造方法外的所有方法。构造器是和类名相同的,不能被子类继承,因此也不可以重写
3、重写方法不能抛出新的检查异常或者比被重写方法申明更加宽泛的异常
super.方法()和this.方法()的区别:
子类重写了父类的方法,那父类中的方法还能用吗,当然可以。
通过super对父类中方法进行调用,使用super.方法(),明确指定该方法使用父类的
使用this.方法()会先在本类中寻找是否存在方法,如果没有,则去父类中查找是否具有此方法,如果没有,编译错误