java - 可以说“方法重载”,其中两个没有关系(扩展)的差异类具有相同的方法名称但不同类型的参数?
问题描述
我知道 Java 方法可以在同一个类或子类中重载。
但是我可以在非子类中重载 Java 静态方法吗?
我对下面的代码有点困惑。
class A {
public static void main(String[] args) {
System.out.println("Inside main's (String[]) method");
}
}
class B {
public static void main(int[] args) { // [1, 2, 3]
System.out.println("Inside main's (int[]) method");
}
}
public class _2b_Overloading_Staticmethod_NonSubClass {
// JVM's entry point
public static void main(String[] args) {
A.main(args);
B.main(new int[]{1,2,3});
}
}
解决方案
我知道 Java 方法可以在同一个类或子类中重载。
正确的。当同一个类中的多个函数共享相同的名称但参数不同时,该方法被认为是重载的。
public class A
{
public void foo(int param)
{
}
public void foo(string param)
{
}
}
但是我可以在非子类中重载 Java 静态方法吗?
是的你可以。子类是从父类(也称为超类)继承属性的类。如果类是子类而不是子类或者方法是静态的,则没有禁止方法重载的规则。
public class A
{
public static void foo(int param)
{
}
public static void foo(string param)
{
}
}
但是,您问题中的上述代码不是方法重载的示例,因为具有相同名称(main)的方法不包含在同一类/范围内。然而,它们的参数列表确实有所不同,但这并不重要。
推荐阅读
- reactjs - 用 Jest 测试一个 React 组件
- regex - Pandas 使用正则表达式有条件地更改单元格
- javascript - Javascript:console.log 时间
- php - 带有 Laravel 的 Vue js - 登录表单安全性
- javascript - npm 警告错误
- python - Python从输入文件中绘制数据
- python - SciPy stats lognormal distribution 获得具有给定对数正态分布均值和对数正态分布几何标准差的pdf
- json - 如何将 json 参数变量编码为一个休息尖锐的请求体
- gatling - 在 Gatling Scala 中将提取的数据从会话写入 CSV
- powershell - powershell:倒数计时器