一、重载 & 重写
1.1、重载
发生在同一个类中,方法名必须相同。实质表现就是多个具有不同的参数个数或者类型的同名函数,返回值类型可随意,不以返回值类型作为函数重载的标准。
1.2、重写
发生在具有继承关系的父、子类中。方法名、参数列表必须相同,是父类与子类之间的多肽性,实质是对父类的函数重新定义。返回值范围小于等于父类,抛出的异常小于等于父类,访问修饰符大于等于父类,需要注意的是:如果父类的某个方法被私有化了,那么该方法不允许被继承。
1.3、Java的构造方法能否被重写和重载
重写发生在具有继承关系的父子类中,重写的方法名不变,而类的构造方法与类名一致,假设父类的构造方法能够被子类重写,那么子类类名必须与父类类名相同,显然这是不可以的,所以Java的构造方法是不能被重写的。方法重载发生在同一个类中,表现是方法名相同,返回值类型或者参数不同即可,故构造方法可以被重载。
1.4、构造器constructor是否可被override
父类的私有属性和构造方法不能被overide(重写),但是可以overload(重载),所以可以看到一个类中有多个构造方法。