You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中静态方法与实例方法的同名方法是否属于重载?

Java中静态方法与实例方法的重载判定

先看你提供的代码:

class Main {
  public static void main(String[] args) { }
  public static void foo(int a ) { }
  public void foo() { }
}

核心结论

这两个方法属于重载。

判定依据

Java重载的核心规则是:同一类中,方法名相同,但参数列表(参数个数、类型、顺序)不同,即构成重载。方法的静态/非静态修饰符、返回值类型都不属于重载判定的参考条件。

你代码里的两个foo方法,方法名一致,但一个带int类型参数,一个无参数,参数列表存在明显差异,完全符合重载的定义。

静态/非静态特性的影响

二者的静态/非静态区别只是方法本身的特性差异,不影响重载判定:

  • 静态foo(int a)属于类,调用时无需创建实例,直接通过Main.foo(1)即可调用
  • 实例foo()属于对象,必须先创建Main实例,再通过new Main().foo()调用

它们不存在其他特殊情况,就是标准的重载关系。

内容的提问来源于stack exchange,提问作者user129393192

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 22:09:50