Java面试题——关于重写(override)与重载(overload)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/LYM0721/article/details/80571460

一. 首先,什么是重写?什么是重载?
1.重写(override)

  重写是发生于父类与子类之间多态性的一种表现,简单的说就是子类重写父类的“可被重写”的方法,为什么说“可被重写”呢,因为在Java中含有private、final以及static等修饰符的方法是不具有多态性的(构造方法也不可重写,因为构造方法实际上就是static方法,只不过其申明是隐式的),也即子类不可重写父类中的这些方法。

2.重载(overload)

  重载是发生于单个类中多态性的一种表现,简单的说就是在一个类中编写不同形参(形参个数、类型或顺序不同)的同名方法,然后可以通过该类的对象根据不同形参的方法称为重载。

二. 再者,重写(override)与重载(overload)的区别在哪?

区别点 重写 重载
形参 不可改变 必须改变
返回类型 不可改变 可修改
异常 可以减少或删除父类方法所抛出异常,一定不能抛出新的或者更广的异常 可修改
访问修饰符 可降低限制(例如可将public改为protected),但不可升级为更严格修饰限制 可修改

PS:自己当做笔记用,仅供参考,如有错误,烦请指出,不胜感激。

猜你喜欢

转载自blog.csdn.net/LYM0721/article/details/80571460
今日推荐