There is no overloading of main function.
After javac Test.java
Three class files are created
Test.class
Test1.class
A1.class
Each of the classes has a main method
java Test1 runs the main method in Test1 class
So, in line 13 "This is test 1 class" is printed.
Then Test.main(new String[4]) is called
Means the main function of the Test class is called from the main function of Test1 class. As main has a parameter String[] so a String array
{null, null, null, null} is passed.
"Hello World" is printed
Then Test.main() is again called with args. Here args is the args of Test1.main() which is null.
So Test.main() with argument null is called.
"Hello World" is printed
main() function is not anything different from other functions. While running the program the JVM calls the main() function with the cmd-args as String[] (if any). You can also call main function inside main function.
CCore Java | Java for Beginners@codeitupjava · group · Tech