我们可以在Java中重载main()方法吗?

问题是“我们可以重载main()Java中的方法吗?”

  • 是的,我们可以重载main()Java中的方法

  • JVM通过其签名调用任何方法,换句话说,JVM查找签名,然后调用该方法。

  • 如果我们在程序中重载一个main()方法,则程序中将有多个main()方法。那么JVM调用哪种方法?如果我们有多个main()方法,则无需混淆,默认情况下,JVM仅使用(string []参数)调用一个main()方法

示例

class MainMethodOverloading {
    public static void main(String[] args) {
        System.out.println("We are in String[] args");
    }

    public static void main(int args) {
        System.out.println("We are in int args");
    }

    public static void main(String args) {
        System.out.println("We are in String args");
    }
}

输出结果

E:\Programs>javac MainMethodOverloading.java

E:\Programs>java MainMethodOverloading
We are in String[] args

默认情况下,JVM仅调用String参数的一个main()方法,但是如果我们要调用另一个main()方法或任何其他重载main()方法,则我们只能做一件事,即可以显式调用重载main()方法

我们可以使用String参数在原始main()方法内调用其他main()方法。

示例

//重载 
// main()方法
import java.io.*;

class MainMethodOverloading {
    //原始main()方法
    public static void main(String[] args) {
        System.out.println("Hi, We are in main (String [] args) ");
        MainMethodOverloading.main("Call main() with one argument");
    }
    //这些是重载的main()方法 
    public static void main(String args1) {
        System.out.println(args1);
        MainMethodOverloading.main("call main() with", "two argument");
    }
    public static void main(String args1, String args2) {
        System.out.println(args1 + args2);
        MainMethodOverloading.main("call main() with", "three argument", "from two argument main()");
    }
    public static void main(String args1, String args2, String args3) {
        System.out.println(args1 + args2 + args3);
    }
}

输出结果

E:\Programs>javac MainMethodOverloading.java

E:\Programs>java MainMethodOverloading
Hi, We are in main (String [] args) 
Call main() with one argument
call main() withtwo argument
call main() withthree argumentfrom two argument main()