为什么不能用返回值类型来判断方法是否重载呢?

PGM-Explainer实验总结 PGM-Explainer建立了一个概率图模型,为GNN提供实例级解释。 论文标题:PGM-Explainer: Probabilistic Graphical Model Explanations for Graph Neural Networks 论文地址:2010.05788.pdf (arxiv.org) PGM-Explainer实验 实验目的 研究PGM-Explainer的有效性 实验方案 合成数据集的节点分类 与其他解释器做对比实验 使用六个合成数据集。 每个输入图都是一个 阅读详情

方法重载定义:

如果一个类中出现了两个及两个以上的方法的方法名相同,形参列表不同,则被称为方法重载。

判断方法重载的依据就是:

两同一不同。
同一个类下的相同方法名,不同的参数列表。说白就是签名区别

至于其他部分比如:返回值类型,修饰符都没有关系。


为啥为什么不能用返回值类型来判断方法是否重载呢?
就比如
int f(){} 和 void f(){}
在main方法中调用时
f();
你能判断用哪个方法吗?你都不清楚的话,那系统就更不清楚了。

《疯狂java讲义》里有一句话,不要让系统糊涂,让它糊涂,就是你错了。

因此,不能使用返回值来判断方法是否重载了。


细心的人会有一个疑问?比如形参是一个不定参数呢?

像这种容易混淆的方法最好不要同时存在。

【即插即用模块】Transformer篇 | MICCAI 2025 | ReLULA:Q/K双ReLU线性注意力,既轻又准! 本文介绍了一种基于线性注意力的多实例学习模块(Lin-MIL),适用于高分辨率视觉任务。该模块通过转置计算顺序和使用ReLU激活,将计算复杂度从O(n²d)降至O(nd²),同时提升特征判别性。核心创新包括Q/K双ReLU激活、可学习温度系数和数值稳定归一化。实验表明,该模块在轻量化视觉任务中优于传统线性注意力和Mamba架构。代码实现了模块化矩阵乘法,支持即插即用替换ViT自注意力层。该模块特别适合计算病理学等需要处理大量图像补丁的任务。 阅读详情

相关推荐

从零开始:使用CMake构建GreenHills RH850项目的完整工作流(2018.1.5版)

本文详细介绍了如何从零开始使用CMake构建GreenHills RH850嵌入式项目的完整工作流。通过编写工具链文件、定义CMakeLists.txt,实现自动化、可维护的跨平台构建,有效解决了传统IDE在多模块、持续集成场景下的局限性,显著提升团队协作效率和项目可维护性。

weixin_28839699的博客 130

为什么不能根据返回类型来区分重载

在Java等编程语言中,不能仅根据方法的返回类型来区分重载方法,因为方法签名由方法名和参数列表组成,返回类型不属于签名的一部分。编译器在调用方法时无法通过参数确定目标方法,导致编译错误。若需要实现类似功能,可通过修改参数列表、使用不同方法名或泛型编程等合法方式解决。这一规则确保了编程语言的逻辑清晰和代码可维护性,并与其他主流语言(如C++、C#)的设计保持一致。

季鸢的博客 497

Windows系统离线搭建PyTorch深度学习环境全攻略(CUDA+cudnn实战)

本文提供了一份在Windows系统下离线搭建PyTorch深度学习环境的完整实战指南。文章详细讲解了如何在没有网络连接的情况下,正确安装和配置CUDA、cudnn以及PyTorch,并构建独立的Python虚拟环境。重点强调了版本依赖关系的重要性,并提供了从驱动准备到环境验证的每一步操作,旨在帮助用户高效、稳定地部署可复用的GPU深度学习开发环境。

table的专栏 579

重载与返回值

重载的概念是: 方法名称相同,参数个数、次序、类型不同 因此重载对返回值没有要求,可以相同,也可以不同 但是如果参数的个数、类型、次序都相同,方法名也相同,仅返回值不同,则无法构成重载 如: public int A(int i); public double A(int i); 这2个方法不能构成重载,会有编译错误。 而: public in

black_war_horse的博客 1852

ABAP HANA BP主数据批导

SAPhana官方推荐的创建bp主数据的类是CL_MD_BP_MAINTAIN 客户的创建具体示例代码如下: DATA: LT_RETURN_MAP TYPE MDG_BS_BP_MSGMAP_T. DATA: LS_RETURN_MAP TYPE MDG_BS_BP_MSGMAP. DATA: LS_MESSAGE_MAP TYPE MDG_BS_BP_MSGMAP_KEY. DATA: LT_DATA TYPE CVIS_EI_EXTERN_.

IamRunjiang的博客 4143

RK3399平台开发系列讲解(外设篇)交换芯片RTL8306M

网络:交换芯片RTL8306M 电路: make menuconfig 配置: 目录:arch/arm64/configs/rk3399_b201_defconfig CONFIG_FIXED_PHY=y 设备树: arch/arm64/boot/dts/rockchip/rk3399-b201-rev1.dts 时钟: Open之后首先校验网卡mac地址是否正确(stmmac_chec...

内核笔记 2391

方法的返回值与重载

java 方法的返回值与重载

oinkzhh的博客 1376

vTestStudio保姆教程之从0到1搭建软件环境

学习HIL测试的必经之路,保姆级教学VT从搭建到测试。

欢迎来到eee的博客 4187

为什么函数不能根据返回类型来区分重载?

不能,因为调用时不能确定函数返回的类型信息,编译器不知道你要调用哪个函数。 例如:如下代码 package Test; /** * 方法的重载代码 * * 下面以count方法演示代码的重载 * * @author 宁小菜 * */ public class test { public int count(int a,int b) { return a+b; } public int count(double a,int b) { ...

JAVArumendaorutu的博客 2241

手把手安装GNN必备库 —— pytorch_geometric

PyG全称是Pytorch Geometric,它是一个基于Pytorch构建的库,可以帮助用户快速构建和训练自己的图神经网络模型。PyG中实现了很多先进(state of the art)的GNN模块,例如GCN、GraphSage、GAT、SGC、GIN等等。此外,PyG中还包含了大量的benchmark图数据集、丰富的图数据操作方法、支持多GPU。

m0_51339444的博客 2380

【系统分析师】2026年-上半年真题:综合知识-答案及详解(75题完整回忆版)

系统分析师考试备考指南(2026上半年机考) 考试安排: 2026年5月23日举行,分三科连考: 综合知识+案例分析(08:30-12:30,240分钟) 论文(14:30-16:30,120分钟) 科目详情: 综合知识:75道单选(含5道英文题),满分75分,45分及格。 案例分析:5选3主观题,满分75分,45分及格。 论文:4选1论述题,满分75分,45分及格。 重点题型解析: 软件工程:结构化分析以数据字典为核心(题1)。 概率统计:独立事件概率计算(题2,三人解题概率≈0.9)。 数据库安全:DB

数据知道的博客 1889

面试必问:为什么不同方法返回类型不算方法重载?【Java基础篇】

从方法签名的组成规则我们可以看出,方法的返回类型不是方法签名的组成部分,所以当同一个类中出现了多个方法名和参数相同,但返回值类型不同的方法时,JVM 就没办法通过方法签名来判断到底要调用哪个方法了。公众号【Java烂猪皮】里面每天都会分享很多独家的干货内容,比如:Java后端学习路线,分享实战项目,源码分析,百万级系统设计,系统上线的一些坑,MQ专题,真实面试题,每天都会回答大家提出的问题。方法重载是指在同一个类中,定义了多个同名方法,但每个方法的参数类型或者是参数个数不同就是方法重载。

Java后端架构V 337

药物对接仿真软件:HADDOCK_(3).分子对接基本原理

分子对接(Molecular Docking)是计算化学和结构生物学中的一种重要技术,用于预测小分子(如药物分子)与大分子(如蛋白质)之间的相互作用模式和结合亲和力。这一技术在药物设计和开发中具有广泛的应用,尤其是在寻找和优化潜在的药物候选物方面。本节将详细介绍分子对接的基本原理,包括其理论基础、计算方法和应用。

kkchenjj的博客 1170

c++函数重载为什么不能以返回值类型区分

c++函数重载为什么不能以返回值类型区分? 看一段简单代码 #include <iostream> #include<string> using namespace std; void fun(int a, int b) { cout << "a+b=" << a + b << endl; } int fun(int a, int ...

weixin_43914789的博客 5473

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

返回值类型的不同不能作为区分重载的途径

      对于重载方法,不要试图通过给予不同的返回值类型(参数列表完全相同)加以区分。因为方法在调用时可以不将返回值赋值给一个对应的变量,这样就没有特征区分。也不要试图通过在调用这样的重载方法时赋值给对应的变量加以区分,因为问题是出现在重载方法定义上,而不是调用上。总而言之,Java不允许仅仅利用返回值的不同来区分重载方法。 //ReturnValueTest.java//You can

bryantd的专栏 1万+

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

方法重载返回值类型可以不同吗_JAVA方法

方法:方法就是一段用来完成特定功能的代码片段,类似于其他语言的函数方法用于定义该类或者该类的实例的行为特征和功能实现,方法是类和对象行为特征的抽象,方法很类似于面向过程中的函数,面向过程中,函数是最基本单位,整个程序由一个个函数调用组成,面向对象中,整个程序的基本单位是类,方法是从属于类和对象的作用:提高代码的复用性方法格式:修饰符1 修饰符2 .... ... 返回值类型 方法名...

weixin_39611546的博客 2850

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

java 方法重载的返回值类型_java方法的重载与覆盖的返回值类型

首先看一段程序:package testOverLoadandoverRide;public class A extends B{//下面的是方法的覆盖(overRiding)public void riding(){System.out.println("this is overRiding ");}//下面两个函数是方法的重载(overLoading),但是返回值类型不同,可以运行public...

weixin_39883670的博客 1231

重载是什么?只有返回值类型不同算不算重载?为什么?

首先,重载,从简单说,就是函数或者方法有相同的函数名,但是参数列表不相同的情形,这样的同名不同参数的函数或者方法之间,互相称之为重载函数或者重载方法,例子如下:重载但从定义上来说是很好理解的,我们接着说下一个问题,只有返回值不同的函数算不算重载呢?这个简单 我们在IDEA里面试一下就能知道结果,自己去试一下哦,虽然很简单。

qq_53574615的博客 5044

为什么不能以返回值区分重载方法

许多Java的初学者可能都在思考一个问题:为什么在区分类的重载方法的时候,我们只能以入参作为标准,而不能用返回值作为标准。我们现在来讨论一下用返回值来区分重载方法的可行性。比如下面两个方法:void fun();int fun();long fun(); 如果编译器可以根据语境来判断执行哪一个方法的话,那么当  执行  int i = fun(); 的时候,我们很容易判

virgoboy2004的专栏 3969

为什么不能根据方法的返回值类型来区分重载

今天和群友水群的时候,有人问了我一个问题 为什么不能根据方法的返回值类型来区分重载? 说一下个人理解吧,如有不对欢迎大佬指正 声明两个方法 int add(int a,int b); long add(int a,int b); 这两个方法除了返回值以外没有任何不同,调用的时候,假设用不到返回值,单纯的调用方法执行逻辑 int a = 3; int b = 4; add(a,b); 这样的话JVM无法辨别究竟调用哪个方法,所以我认为不能根据方法的返回值类型不同来作为重载的条件! ...

超哥的博客 567

利用方法重载求和,判断两个数是否相等

利用方法重载求和,判断两个数是否相等 定义 重载(overLoad) 在同一个类中,方法名相同,参数列表不同的多个方法。与返回值类型无关。当调用时,java虚拟机会根据方法的参数个数、类型来区分同名的不同方法,这也称之为编译时多态。 参数列表不同 参数个数不同 参数类型不同 参数顺序不同(算重载,但是在开发中不用) 例题1 / 重载方法求和 2个整数 3个整数 / 例题2 / 需求:比较两个数...

qq_43654669的博客 1290

Java 为什么不能根据返回值判断重载方法

Java 可以根据函数名,参数个数,参数类型判断重载方法,但是不能根据返回值判断重载方法  如下两个方法:    void f(){}    int f(){ return 1;}只要编译器可以根据语境明确判断出语义,比如在int x = f();中,那么的确可以据此区分重载方法。不过,有时你并不关心方法的返回值,你想要的是方法调用的其他效果(这常被称为“为了副作用而调用”),这时你可能会调用方法...

GengFuming的专栏 2614

C++ 硬核基础:为什么函数重载不能只看返回值?

C++函数重载不能仅依靠返回值类型区分,核心原因是会导致调用二义性。当函数名和参数相同时,编译器无法通过上下文判断应调用哪个版本。有效重载必须满足参数列表不同,包括参数数量、类型或顺序变化。常见误区包括:形参名称不同、typedef别名、顶层const修饰都不构成重载。但底层const(指针/引用)和类成员函数的const修饰是合法的重载方式。判断重载的关键是编译器能否在调用时明确区分函数版本。

YoungHong1992 939

为什么不能只根据返回值进行函数重载

为什么只根据返回值无法进行函数重载

fuzekun的博客 1194

为什么不能根据返回类型区分重载?

重载(过载)和重写(覆盖)的区别重载的方法能否根据返回类型进行区分。?答:方法的重载和重写都是实现多态的方式,区别在于前者实现的是编译时的多态性,而后者实现的是运行时的多态性。重载发生在一个类中,同名的方法如果有不同的参数列表(参数类型不同,参数个数不同或者二者都不同)则视为重载;重写发生在子类与父类之间,重写要求子类被重写方法与父类被重写方法有相同的返回类型,比父类被重写方法更好访问,不能比父类...

sinat_32176267的博客 4万+

为什么函数不能根据返回类型不同来重载?

华为的面试题中曾经问过这样一个问题 – “为什么不能根据返回类型来区分重载”。 因为调用时不能指定类型信息,编译器不知道你要调用哪个函数。 例如下面两个函数: float max(int a, int b); int max(int a, int b); 当调用max(1, 2);时,无法确定调用的是哪个,单从这一点上来说,仅返回值类型不同的重载是不应该允许的。而且代码写成这样,编译也会给你报错。 再比如对下面这两个方法来说,虽然它们有同样的名字和自变量,但其实是很容易区分的: void f() {}

weixin_42887343的博客 3172
上一篇: == 和equals方法 比较终极篇
下一篇: java基础篇-来源于微信公众号[java知音]
何厚勋
博客等级 码龄10年 14粉丝 89原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值