每日一道面试题之在 Java 中,什么时候用重载,什么时候用重写?

简介: 每日一道面试题之在 Java 中,什么时候用重载,什么时候用重写?

什么是重载?

重载(Overloading)是指在同一个类中定义多个具有相同的名称但参数列表不同的方法,由于编译器在调用重载方法时,会根据参数的类型和个数选择合适的方法进行调用。因此这些方法即使可以有不同的返回类型,但是不能仅仅通过返回类型的不同来进行重载,重载的目的是为了提供更多的方法选择,以适应不同的参数类型和个数,重载方法之间没有继承关系,它们是独立的。


什么是重写?

重写是多态性的重要体现之一,它是指在子类中可以定义名称,参数列表,返回值类型均与父类中某个方法完全相同的方法,我们就说子类中定义的这个方法覆盖了父类中的同名方法。重写的目的是为了改变方法的实现逻辑,使其适应子类的特定需求,在调用重写方法时,根据对象的实际类型来确定调用哪个方法,这称为动态绑定。


注意:方法重写时,方法名称,参数列表,返回值的类型是一定不能修改的,异常可以减少或者删除,但是不能抛出新的异常或者更广的异常,方法的访问权限可以降低限制,但是不能做更严格的限制。


重载重写如何选择?

重载实现的是多样:目的是提高程序的多样性和健壮性,以适配不同场景使用时,使用重载进行扩展;

生活实例解释重载:

假设我们有一个面馆,对于面的种类可以进行重载,可以有拉面,手擀面,刀削面,细面,宽面等等。


重写实现的是增强:目的是在不修改原方法及源代码的基础上对方法进行扩展或增强时,使用重写;


生活实例解释重载:


假设顾客在我们的面馆中,点了拉面,我们不仅完成了拉面的制作,还给拉面中加了青菜,牛肉,这是重写。


当我们需要在同一个类中提供多个方法来处理不同的参数类型和个数时,可以使用重载。而当我们需要在子类中重新定义父类中已有的方法,以改变其实现逻辑时,可以使用重写。

相关文章
|
1天前
|
存储 Java
面试官:素有Java锁王称号的‘StampedLock’你知道吗?我:这什么鬼?
面试官:素有Java锁王称号的‘StampedLock’你知道吗?我:这什么鬼?
42 23
|
4天前
|
Java
Java一分钟之-多态性:理解重写与接口
【5月更文挑战第9天】本文介绍了Java中的多态性,主要通过方法重写和接口实现。重写允许子类根据实际类型执行不同实现,关键点包括方法签名相同、访问权限不降低以及final、static和abstract方法不可重写。接口是抽象类型,包含抽象方法,提供另一种多态性实现。常见问题包括混淆重载与重写、不理解动态绑定以及滥用接口。为避免问题,需明确重写目的、合理设计接口,并在使用多态时注意类型检查。多态性是提升代码质量和灵活性的关键。
10 1
|
5天前
|
Java
【Java多线程】面试常考 —— JUC(java.util.concurrent) 的常见类
【Java多线程】面试常考 —— JUC(java.util.concurrent) 的常见类
15 0
|
5天前
|
安全 Java 程序员
【Java多线程】面试常考——锁策略、synchronized的锁升级优化过程以及CAS(Compare and swap)
【Java多线程】面试常考——锁策略、synchronized的锁升级优化过程以及CAS(Compare and swap)
8 0
|
7天前
|
Java
三个可能的Java面试题
【5月更文挑战第7天】Java垃圾回收机制自动管理内存,回收无引用对象的内存,确保内存有效利用。多态性允许父类引用操作不同子类对象,如Animal引用可调用Dog的方法。异常处理机制通过try-catch块捕获和处理程序异常,例如尝试执行可能导致ArithmeticException的代码,catch块则负责处理异常。
31 9
|
17天前
|
Java
【JAVA面试题】static的作用是什么?详细介绍
【JAVA面试题】static的作用是什么?详细介绍
|
17天前
|
Java
【JAVA面试题】final关键字的作用有哪些
【JAVA面试题】final关键字的作用有哪些
|
17天前
|
JavaScript 前端开发 Java
【JAVA面试题】什么是引用传递?什么是值传递?
【JAVA面试题】什么是引用传递?什么是值传递?
|
17天前
|
安全 Java
【JAVA面试题】什么是对象锁?什么是类锁?
【JAVA面试题】什么是对象锁?什么是类锁?