返回值不同算方法重载么?为什么?

news2024/11/15 17:41:49

1、典型回答

返回值不同不算方法重载

方法重载(Overloading)是指在同一个类中定义了多个同名方法,但它们的参数列表不同,方法重载要求方法:

  1. 名称相同
  2. 参数类型、参数个数或参数顺序,至少有一个不同

方法重载的目的是提供更多的方法选择,方便程序员根据不同的参数类型或个数来调用合适的方法

所以,从上面方法重载的要求可以得出,返回值不同是不作为方法重载的依据的

2、全面剖析

为什么返回值不同不算方法重载的原因有两个:

  1. 从程序的执行层面来讲:返回值不同如果作为方法重载,那么会产生歧义
  2. 从 JVM 方法签名的角度来讲:返回值并不属于方法签名的一部分,因此无法定位到具体的调用方法

什么是方法签名?

方法签名(Method Signature)指的是方法的唯一标识,包括方法的名称、参数列表和参数的顺序。方法签名用于区分不同的方法,以便编译器和虚拟机能够正确地识别和调用特定的方法

2.1、程序执行层面

从程序的执行层面来讲,如果方法的返回值作为方法重载的依据的话,那么程序的执行就会产生歧义,例如以下代码:

此时,我们程序就不知道要去执行哪个方法了

2.2、JVM方法签名层面

方法签名由以下两部分组成:

  1. 方法名称:方法的名称用于标识该方法的功能和用途
  2. 参数列表:参数列表指定了方法接收的参数类型和参数顺序,每个参数都包括参数的类型和参数的名称。

JVM 是通过方法签名来定位到要调用的方法的,而在方法签名中并没有返回值,因此返回值并不能作为方法重载的依据

3、知识扩展

方法重载和方法重写有什么区别?

方法重载和方法重写有什么区别?-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1510332.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

QT----计算器

目录 1 搭建标准界面2、 逻辑编写2.1 初始化 github链接:基于qt的计算器 1 搭建标准界面 按照下图搭设界面 修改样式让这计算器看起来更像一点,同时对按钮分组进行样式编辑,添加字符串name,为number,其他按键为other。之前的文章…

2024会声会影 软件介绍、下载,功能介绍及问题解答

会声会影正式版是一款使用起来十分件便捷的影视后期视频编辑处理软件,会声会影正式版操作简单,还具备了独特创意、灵活有趣等特点,并且软件还具备了上百种滤镜和特效、调控速度、从多机新增视讯片段等等功能,会声会影官方版便捷好…

2024上海网络安全产业创新大会成功举办,天空卫士成为焦点

2月28日,由上海市经济和信息化委员会、上海市普陀区人民政府主办的2024上海网络安全产业创新大会在上海跨国采购会展中心举办。天空卫士受邀参加2023年重点行业网络安全解决方案揭榜结果发布暨合作签约仪式,并参加了工业互联网安全产业创新论坛和数据安全…

【Python】新手入门学习:什么是python解释器,它的作用是什么?

【Python】新手入门学习:什么是python解释器,它的作用是什么? 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基…

Day37:安全开发-JavaEE应用JNDI注入RMI服务LDAP服务JDK绕过调用链类

目录 JNDI注入-RMI&LDAP服务 JNDI远程调用-JNDI-Injection JNDI远程调用-marshalsec JNDI-Injection & marshalsec 实现原理 JNDI注入-FastJson漏洞结合 JNDI注入-JDK高版本注入绕过 思维导图 Java知识点: 功能:数据库操作,文…

C语言⽂件操作

1. 为什么使⽤⽂件 如果没有⽂件,我们写的程序的数据是存储在电脑的内存中,如果程序退出,内存回收,数据就丢失了,等再次运⾏程序,是看不到上次程序的数据的,如果要将数据进⾏持久化的保存&…

羊大师分析,羊奶养生智慧

羊大师分析,羊奶养生智慧 羊奶,这一古老而自然的饮品,近年来逐渐受到越来越多人的青睐。其独特的营养价值与养生功效,使得羊奶成为了追求健康生活的人们的理想选择。那么,羊奶究竟蕴藏着怎样的养生智慧呢?…

MQ的相关概念

微服务间通讯有同步和异步两种方式: 同步通讯:就像打电话,需要实时响应。异步通讯:就像发邮件,不需要马上回复。 同步通讯 同步调用的优点: 时效性较强,可以立即得到结果 Feign调用就属于同…

计算机网络:应用层知识点汇总

文章目录 一、网络应用模型二、域名系统(DNS)三、文本传输协议(FTP)四、电子邮件五、万维网和HTTP协议 一、网络应用模型 p2p也就是对等模型 二、域名系统(DNS) 我们知道,随着人们建立一个网站…

Redis底层数据结构之String

文章目录 1. 前提回顾2. RedisObject三大数据类型简介3. SDS字符串4. SDS字符串源码分析5. 总结 1. 前提回顾 前面我们说到redis的String数据结构在底层有多种编码方式。例如我们执行下面两条语句 set k1 v1 set age 17我们查看类型,发现这类型都是String类型 我们…

动态规划课堂5-----子序列问题(动态规划 + 哈希表)

目录 引言: 例题1:最长递增子序列 例题2:最长定差子序列 例题3:最长的斐波那契子序列的长度 例题4:最长等差数列 例题5:等差数列划分II-子序列 结语: 引言: 要想解决子序列问…

pc端vue2项目使用uniapp组件

项目示例下载 运行实例: 这是我在pc端做移动端底代码时的需求,只能在vue2使用,vue3暂时不知道怎么兼容。 安装依赖包时可能会报:npm install Failed to set up Chromium r756035! Set “PUPPETEER_SKIP_DOWNLOAD” env variable …

伪分布式Spark集群搭建

一、软件环境 软 件 版 本 安 装 包 VMware虚拟机 16 VMware-workstation-full-16.2.2-19200509.exe SSH连接工具 FinalShell Linux OS CentOS7.5 CentOS-7.5-x86_64-DVD-1804.iso JDK 1.8 jdk-8u161-linux-x64.tar.gz Spark 3.2.1 spark-3.2.1-bin-…

JVM的整体架构

JVM的整体架构 JVM的架构模型 基本上是基于栈的指令集架构 基于栈式架构的特点 设计和实现更简单,适用于资源受限的系统避开了寄存器的分配难题:使用零地址指令方式分配指令流中的指令大部分是零地址指令,其执行过程依赖于操作栈。指令集更…

AI写作一键生成原创文案,效率高!

AI写作一键生成原创文案,效率高!当下时代,文案写作对于各个企业推广产品和服务显得隔外重要。优秀的文案能够吸引用户的注意力,激发购买欲望,从而为企业带来更多的销售机会。然而,对于许多人来说&#xff0…

【Python】新手入门学习:什么是工作目录?

【Python】新手入门学习:什么是工作目录? 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程👈 希望得…

【Python机器学习系列】自助法计算机器学习评价指标的置信区间(案例+源码)

这是我的第235篇原创文章。 一、引言 Bootstrap方法是非常有用的一种统计学上的估计方法,是一类非参数Monte Carlo方法,其实质是对观测信息进行再抽样,进而对总体的分布特性进行统计推断。 自助法计算分类模型的AUC、准确率、特异度和灵敏…

商业楼宇一卡通解决方案(1)

智能楼宇发展 智能楼宇也称智能建筑,又称智能大厦。智能楼宇是将建筑技术、通信技术、计算机技术和控制技术等各方面的先进科学技术相互融合、合理集成为最优化的整体,具有工程投资合理、设备高度自动化、信息管理科学、服务高效优质、使用灵活方便和环境安全舒适等特点,是…

Caffeine--实现进程缓存

本地进程缓存特点 缓存在日常开发中起着至关重要的作用, 由于存储在内存中, 数据的读取速度非常快,能大量减少对数据库的访问,减少数据库的压力. 缓存分为两类: 分布式缓存, 例如Redis: 优点: 存储容量大, 可靠性更好, 可以在集群间共享缺点: 访问缓存存在网络开销场景: 缓存数…

Python网站的搭建和html基础

1.Python网站代码及讲解 一般我们搭建小型的网站就用flask库就行了。 (1)安装flask库 安装完python后,按住windows徽标键和r,弹出“运行”,在里面输入cmd。 回车打开,输入“pip install flask”。 (2&am…