首页 > 编程语言 >Java-方法重载

Java-方法重载

时间:2023-05-03 11:23:21浏览次数:42  
标签:调用 Java 形参 编译器 重载 匹配 方法

方法重载

同一个类中,多个方法的名称相同,但是形参列表不同。

方法重载的形式

同一个类中,方法名称相同、形参列表不同

  1. 形参的个数、类型、顺序不同
  2. 形参的名称无关

方法重载的调用流程

当程序调用一个重载方法时,编译器会根据参数列表的不同自动匹配最合适的方法,这种机制叫做方法重载的“重载解析”。

  1. 根据方法名和参数列表的数量、类型、顺序来寻找匹配调用方法的方法。
    1. 如果找到了一个完全匹配的方法,则直接调用。
    2. 如果没有找到完全匹配的方法,尝试类型转换或者通过采纳数数量和顺序的组合来匹配。
    3. 如果仍然没有找到匹配的方法,则报错,提示找不到相应的方法。

在方法重载调用的过程中,编译器的重载解析机制中如果参数类型不匹配,则会尝试进行类型转换,如果转换失败,则会报错。如果存在多个匹配的方法,编译器根据匹配的规则(参数类型的精准匹配、自动类型转换、向上转型等)来选择最合适的方法。

方法重载的好处

  1. 让代码更加简洁、清晰和易于维护,不需要为了实现类似的功能而编写多个不同的方法。
  2. 让程序员根据需要灵活传递不同类型的参数,从而实现不同的功能。
  3. 避免在程序中定义多个功能相同但是名称不同的方法,从而提升程序的效率和性能。编译器的重载解析机制避免了无谓的计算和内存开销。

标签:调用,Java,形参,编译器,重载,匹配,方法
From: https://www.cnblogs.com/usrobject/p/17368845.html

相关文章

  • STAT3010统计方法
    STAT3010/6075StatisticalMethodsinInsuranceAssignment2 Thisassignmentisworth10%oftheoverallmarkforSTAT3010/6075. Thedeadlineforsubmissionis16.00onThursday4May2023. StandardUniversitypoliciesandprocedureswillbefollowedforla......
  • 关于java中的equal
    正常情况下的equal方法是比较两者之间的id。如果需要它实现其他的问题,可以通过重写这个方法。idea自带了重写equal的快捷方式。右键生成中的equals()和hashCode()就可以帮助解决这个问题。选择需要在equal中比较的项,比如需要得到id和pwd是否相同的结果,就可以只勾选他们两个。......
  • java相关
    1.java.exe是执行控制台程序,javaw.exe是执行窗口程序,javac.exe是编译程序2.javatest.helloworld执行这个类中的main3.java-cpxxx.jartest.helloworld  参数cp表示自动找jar中的main。4.eclipse中Export可以打包生成jar文件 javajar包运行main函数_jar包运行......
  • Java读取数据库表
    Java读取数据库表packagecom.easycrud.builder;importcom.easycrud.utils.PropertiesUtils;importorg.slf4j.Logger;importorg.slf4j.LoggerFactory;importjava.sql.*;/***@BelongsProject:EasyCrud*@BelongsPackage:com.easycrud.builder*@Author:xpx......
  • java基础-流程控制语句,顺序结构、分支结构、循环结构
    一、循序结构顺序结构语句是java程序默认的执行流程,按照代码的先后顺序,从上到下依次执行。二、分支结构-if、switch1、if的三种语法结构//1if(关系表达式){表达体内容;}//2if(关系表达式1){表达体内容;}elseif(关系表达式2){表达体内容;}//3if(......
  • java基础-原码、反码、补码
    原码:十进制数据的二进制表现形式,最左边是符号位,0为正,1为负。例如,56,它的原码是00111000反码:正数的补码反码是其本身,负数的反码在原码的基础上,符号位不变,数值取反,0变1,1变0。补码:正数的补码反码是其本身,负数的补码是在其反码的基础上+1。计算机中的存储和计算都是以补码的形式进......
  • 拓展必学1.1 常见排序方法
    今天遇到了需要排序的题目,我们已知的就是用已有的算法进行排序,也就是使用Arrays.sort(nums[]),这个算法本质是快排,在算法比赛的时候可以使用,但是如果需要手撕代码就不可以了,所以我们需要积累常见的数组排序方法。一、冒泡排序(改进版)基本思想:   冒泡排序(BubbleSort)是一种简......
  • xshell下上传文件无法上传,速度一直为0的解决方法
    连接服务器cd切换到主目录执行以下命令如果在xshell下上传文件速度一直为0,可以尝试安装yum -yinstalllrzsz......
  • C++/PTA 函数重载(数据类型不同)
    题目要求用同一个函数名对n(n<=10)个数据进行从小到大排序,数据类型可以是整数、浮点数,用函数重载实现。输入格式:输入n例如3输入n个整数,例如1089输入n个浮点数例如10.235.167.99输出格式:输出n个整数的升序排列:8910以空格间隔,并以空格结尾换行,输出n个浮点数的升......
  • Java代码读取properties配置文件
    读取properties配置文件packagecom.easycrud.utils;importjava.io.IOException;importjava.io.InputStream;importjava.util.Iterator;importjava.util.Map;importjava.util.Properties;importjava.util.concurrent.ConcurrentHashMap;/***@BelongsProject:E......