一、重载
在一个类中,同名的方法如果有不同的参数列表,则视为重载。同时,重载对返回值类型没有要求,可以相同也可以不同。
重载的三种情况:
- 方法名相同,参数个数不同
- 方法名相同,参数类型不同
- 方法名相同,参数顺序不同
二、重写
重写就是在子类中把父类中的方法重新写一遍。重写是在子类与父类之间,子类继承父类原有的方法,子类并不想原封不动的继承父类中的某个方法,所以在重写父类中的某个方法必须方法名相同、参数类型、参数个数、返回类型都必须相同,只对方法体进行修改。需要注意,子类函数的访问修饰权限不能少于父类的。
三、总结
- 重载实现的是编译时的多态性,重写实现是运行时的多态性。
- 重载发生在一个类中,重载的方法名相同,参数列表不同,重写发生在子类与父类之间,重写方法的方法名相同,参数列表也要相同。
- 重载方法是返回类型可以修改,重写方法的不可以。
- 重载方法的异常可以修改,重写方法异常可以减少或删除,一定不能抛出新的或更广的异常。