1、main方法的重载
1 package cn.nxl2018; 2 3 public class Main_test { 4 public static void main(String args[]) { 5 System.out.println("应用程序入口的main方法"); 6 main(); 7 main(10); 8 main(10, 10); 9 } 10 public static void main(){ 11 System.out.println("无参的main方法"); 12 } 13 public static void main(int i){ 14 System.out.println("有参的重载main方法"); 15 } 16 public static void main(int i,int j){ 17 System.out.println("有两个参数的重载main方法"); 18 } 19 }
以上实例说明main方法是可以重载的,每个main方法的参数都是不同的,程序是可以运行的,可以输出应有的结果。但是,如果没有程序入口的main方法,只含有其他main方法。虽然编译此程序是可以的通过的,但是运行时会产生错误。这是因为程序运行时,Java虚拟机找不到对应的main方法,就会产生运行错误。
2、main方法的调用
1 public class Main_test { 2 public static void main(String[] args) { 3 main2(args); 4 } 5 public static void main2(String[] args){ 6 main(args); 7 } 8 }
运行程序后,程序无限递归执行两main方法,很明显main方法是可以被调用的。
3、main方法的继承
Main.java:
1 public class Main{ 2 public static void main(String[] args) { 3 System.out.println("Hello Word!"); 4 } 5 }
Main_test.java:
1 public class Main_test extends Main{ 2 }
编译运行Main_test.java后输出了“Hello Word!”,说明main方法是可以被继承。
4、main方法的隐藏
Main.java:
1 public class Main{ 2 public static void main(String[] args) { 3 System.out.println("Main"); 4 } 5 }
Main_test.java
1 public class Main_test extends Main{ 2 public static void main(String[] args) { 3 System.out.println("Main_test"); 4 } 5 }
很显然父类Main中的main方法被隐藏,结果显示的是子类中的main方法中的内容。
关联博客(博客园):