重写、重载、重构
重载
百度百科定义
overload可直译为重载,它是指我们可以定义一些名称相同的方法,通过定义不同的输入参数来区分这些方法,然后再调用时,VM就会根据不同的参数样式,来选择合适的方法执行。
起源
构造函数是一种特殊的函数,使用构造函数的目的是用来在对象实例化时初始化对象的成员变量。由于构造函数名字必须与类名一致,我们想用不同的方式实例化对象时,必须允许不同的构造方法同时存在,这就用到了重载。
应用
重载虽然起源于构造方法,但是在普通方法中也可以使用方法的重载。方法的重载就是在同一个类中允许同时存在多个同名方法,只要这些方法的参数类型、个数、顺序不同即可。
返回值 方法名(参数数据类型...参数名称)
...定义不定长参数,不定长参数就是一个数组。
重写与重构
- 重写:override
也可以称之为覆盖。就是在子类中将父类的成员方法的名称保留,重写成员方法的实现内容,更改成员方法的存储权限,或者修改成员方法的返回值类型。
当重写父类方法时,修改方法 的权限只能从小范围到大范围
public > protected > (default) > private
修改成员方法的返回值类型时,重写的返回值类型必须是父类中同一方法返回值类型的子类
- 重构
在继承中的一种特殊的重写方式,子类与父类的成员方法返回值、方法名称、参数类型及个数完全相同,唯一不同的是方法实现内容。
在实例化子对象时,父类无参构造方法被自动调用,但有参构造方法并不能被自动调用,只能依赖super关键字显式的调用父类的构造方法