面试题解答:Overload和Override区别
重写和重载是在面试中被经常问到的问题,但是我们发现官方或者其他资源上给出的答案太多,不够简洁。所以就此我整理一下重写和重载区别的较为简洁的面试答案。在面试时,回答以下几点我感觉就可以了。
1.重载和重写在宏观上的共同点:
- 重载和重写都是实现多态的方式。
2.重载和重写在宏观上的不同点
- 重载是实现编译时的多态性,重写实现的是运行时的多态性。
3.重载和重写各自具备的特点
(1)重载(Overload)
- 重载要求方法的参数列表不同,这里指:参数的类型、参数的个数、参数的顺序
- 重载的返回值类型不作要求(可相同可不同)。在重载中一定无法以返回值的不同作为重载的区分标准!
- 重载是一个类中的多态性的表现
(2)重写(Override)
- 重写发生在父子类之间伴随着继承
- 重写要求方法名、参数列表、返回值类型除了返回值类型可以是父类的子类以外,其它必须相同。
- 访问修饰符一定要大于被重写方法的访问修饰符
- 重写方法一定不能抛出新的检查异常或者比被重写方法声明更加宽泛的检查型异常。