一. 首先,什么是重写?什么是重载?
1.重写(override)
重写是发生于父类与子类之间多态性的一种表现,简单的说就是子类重写父类的“可被重写”的方法,为什么说“可被重写”呢,因为在Java中含有private、final以及static等修饰符的方法是不具有多态性的(构造方法也不可重写,因为构造方法实际上就是static方法,只不过其申明是隐式的),也即子类不可重写父类中的这些方法。
2.重载(overload)重载是发生于单个类中多态性的一种表现,简单的说就是在一个类中编写不同形参(形参个数、类型或顺序不同)的同名方法,然后可以通过该类的对象根据不同形参的方法称为重载。
二. 再者,重写(override)与重载(overload)的区别在哪
区别点 | 重写 | 重载 |
---|---|---|
形参 | 不可改变 | 必须改变 |
返回类型 | 不可改变 | 可修改 |
异常 | 可以减少或删除父类方法所抛出异常,一定不能抛出新的或者更广的异常 | 可修改 |
访问修饰符 | 可降低限制(例如可将 | 可修改 |
PS:自己当做笔记用,仅供参考,如有错误,烦请指出,不胜感激。