一、重载
1.什么是重载
一个类里边的重名方法
2.学习重载的目的
明确调用的是哪个方法,当一个类中出现同名方法时,通过方法名来确定调用的是哪个方法已经不行了,所以就要看参数列表了。
3.定义
在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可。
“两同一不同”:同一个类,同名方法,参数列表不同(个数、类型、顺序)
4.重载规则
- 重载是通过不同的方法参数来区分的,例如不同的参数个数、不同的参数类型或不同的参数顺序。
- 不能通过方法的访问权限、返回值类型和抛出的异常类型来进行重载。
- 对于继承来说,如果基类的访问权限为private,那么就不能在派生类对其重载;如果派生类也定义了一个同名的参数,这只是一个新的方法,不会达到重载的效果。
二、重写
1.定义
在有继承关系的类中,重写是指派生类函数覆盖基类函数。覆盖一个方法并对其重写,以达到不同的作用。
2.本质
外壳不变,核心重写。
3.好处
子类可以根据需要定义特定与自己的行为。
4.方法重写的规则
- 参数列表必须与被重写的方法相同;
- 返回类型必须与被重写的方法的返回类型相同;
- 访问权限不能比父类中被重写的方法的访问权限更严苛;
- 父类的成员方法只能被它的子类重写;
- 声明为final的方法不能被重写;
- 声明为static的方法不能被重写,但是能够被再次声明;
- 如果一个方法不能被继承,那么该方法不能被重写;
- 子类和父类在同一个包中,那么子类可以覆写父类的所有方法,除了声明为private和final的方法ÿ