重载
定义:同一类中,方法名相同,参数列表不同的一组方法的定义,与返回值无关
为什么需要重载?
在我们用编程时,我们可能要定义一些操作内容相似但是参数列表不同的方法,比如构造方法的重载,减少了我们针对不同的参数列表重新想方法名,节约了方法名,也使我们在阅读代码的时候更简单明了
对于继承父类的子类能否重载父类的方法这个问题:肯定是不能的,因为在不同类中不存在重载的说法。但是子类继承了父类后,自然也就继承了其方法,这时候我们在子类中对它自己的方法重载当然是可行的,这样做看上去似乎是子类重载了父类的方法,但是实际上是对自己的方法重载。所以不存在子类出重载父类这种说法。
重载的特点:
- 必须在同一个类中才叫重载
- 必须方法名相同,参数列表不同
重写
定义:在子类中,出现和父类中完全相同的方法声明(返回值类类型 方法名 参数列表),只是方法体不一样
为什么需要重写?
我们知道,每个人在生活中或多少会有我们父母的缩影,这就是继承的体现,而重写所反映的就是我们与父母的不同之处。当出现父类和子类在某一方法上的不同,父类的方法不能满足子类的需求,则可以在子类中对父类的方法进行重写(或覆盖)。
重写的特点:
- 必须三要素完全相同(返回值类型,方法名,参数列表)
- 子类重写父类方法时,使用的权限修饰符要大于等于父类方法的权限
- 父类private修饰的方法不能被子类重写,即使子类有完全相同的方法也不属于重写,属于重新定义一个新方法;final 修饰的父类方法不可被重写,否则会报错。