方法重载与方法重写
方法重载
方法重载是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数的类型或参数的个数。
满足条件
- 多个方法在同一个类中
- 多个方法具有相同的方法名
- 多个方法的参数不同(类型或数量不同)
注意事项
- 重载仅对应方法的定义,与方法的调用无关
- 重载仅针对同一个类中方法的名称与参数进行识别,与返回值无关
方法重写
子类可继承父类中的方法,而不需要重新编写相同的方法。但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。方法重写又称方法覆盖。
注意事项
- 子类的方法声明必须与父类一致(方法名一样,参数列表也必须一样)
- 父类的私有方法不能被重写(父类的私有成员不能被继承)
- 子类方法的访问权限不能比父类更低,通常保持一致即可(public > 默认 > 私有)
对比
- 方法重载是同一个类中的多个方法,方法重写是父类与子类之间的
- 方法重载可以是多个方法之间,方法重写只能是一对方法(父类子类对应的)
- 方法重载要求参数列表不同,方法重写要求参数列表相同
- 方法重载,是根据调用时的实参表与形参表来选择方法体的。方法重写,是根据调用该方法的对象的类型(对象对应存储空间类型)来决定。