Java 重载(什么是重载?什么时候重载?重载有什么好处?)

重载

重载的来源

重载的背景:需求 :在一个类中,已经实现了两个整数(int类型) 求和。那么能不能做两个float类型的求和?
解决方法

可以创建新的方法,也可以进行重载。

重载的含义

在java中,如果有功能类似,可以使用相同的名字来定义不同功能方法;

  • 所谓的不同功能:不是主体功能不同,而是参数不同。
  • 参数不同包括:数量、类型、顺序不同(3者其1不同即可)

方法调用时,编译器如何知道需要调用的是哪一个方法?

虚拟机会根据语言环境,如参数类型、个数、顺序等找到指定的方法进行执行。
其实,就是只要参数能够跟形式参数进行匹配,就会找到相应的方法。

重载的要求

定义重载方法的时候,要求:

  1. 方法的名字必须相同,作用域必须相同
  2. 参数必须不同:数量、类型、顺序不同(只要一个不同,都是重载方法)

注意一下,使用重载的时候:一定不要将两个功能完全不一样的方法进行重载!!!
从代码的角度来说,上面做法是可以的,但是从业务逻辑和代码的可读性、应用型的角度来说不可以这么做

重载的优点
  • 定义端(方法的提供者):使用相同的方法名(一个方法)来表示功能相同的(多个)方法。
  • 调用端(方法的使用者): 在调用的时候,可以使用相同名字(一个名字)的方法实现不同的功能。
  • 重载也是多态性的体现:一个内容,可以实现多个功能
Java中,方法重载(Method Overloading)方法重写(Method Override)是两个相关的概念,但它们有不同的含义: **方法重载(Overloading)**是指在一个中可以有多个同名的方法,但它们的参数列表必须不同,包括参数的数量、型或顺序。方法体不一定相同。这主要是为了提供多种方式去完成相同的操作,增加代码的灵活性可读性。例如: ```java public void print(int num) { System.out.println("打印整数:" + num); } public void print(String str) { System.out.println("打印字符串:" + str); } ``` **方法重写(Override)**发生在子继承父的情况下,子中有一个或多个与父同名、同参数列表并且返回型相同的公开方法。当使用父引用调用该方法时,实际上会执行子方法实现,实现了动态绑定。这是多态性的体现,有助于提高代码的扩展性。例如: ```java class Parent { public void display() { System.out.println("Parent display"); } } class Child extends Parent { @Override public void display() { System.out.println("Child display"); } } ``` **区别**: 1. **目的**:方法重载是为了在同一的不同方法间提供相似的功能;而方法重写则是为了在子中改变父的行为。 2. **范围**:重载发生在同一个内部,而重写则涉及继承关系,子覆盖父方法。 3. **使用时机**:通常在内部创建一组具有相似作用的接口时使用重载;在子继承父并希望提供新的实现时使用重写。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值