栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

main方法的继承、重载和调用

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

main方法的继承、重载和调用

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录
  • 前言
  • 一、main方法的格式定义
  • 二、main方法可以被继承吗?
  • 三、main方法能重载吗?
  • 四、main方法可以被其它方法调用吗
  • 总结


前言

main方法可以继承吗?
main方法能重载吗?
main方法可以被其它方法调用吗?


提示:以下是本篇文章正文内容,下面案例可供参考

一、main方法的格式定义
  • 【public】main方法启动时是由JVM进行加载的,public是访问权限最高的修饰符,因此使用public;
  • 【static】方法的调用要么是通过对象,要么是通过类,而 main 方法的话因为是由java虚拟机调用的,所以无需生成对象,那么声明为 static 即可;
  • 【main】至于为什么方法名称叫 main,java开发者规定的,比如 C 语言的方法名也是固定的;
  • 【void】因为main方法结束时无需返回值,因此使用void;
  • 【String[]】此字符串数组用来运行时接受用户输入的参数;因为字符串在 Java 中是具有通用普遍性的,所以使用字符串是最优选择;数组的话,因为我们的参数不止一个,所以数组肯定是合适的
    注意:不过自 JDK1.5 引入动态参数后,String[]数组也可以使用String… args来实现。
public static void main(String[] args) {      
}

除了上面 JVM 规定的这个 main 方法比较特殊外,其他的 main 方法与普通的静态方法是没有什么不同的

二、main方法可以被继承吗?

当类继承时,子类可以继承父类的方法和变量,那么当父类定义了 main 方法,而子类没有 main 方法时,能继承父类的 main 方法,从而正常的运行程序么?
父类(示例):

public class Main {
    public static void main(String[] args) {
        System.out.println("我是父类的main方法");
    }
}

子类(示例):

//Main的子类
public class MainClass extends Main {
}

运行结果

通过上述测试获取结果:我们运行子类 MainClass ,可以发现,打印了“我是父类的main方法”,这说明 main 方法也是可以继承的。那么还有一种隐藏的情况也很显然了,子类定义自己的 main 方法,隐藏掉父类中的实现,那么这也是可以的。
子类中声明main方法(示例):

public class MainClass extends Main {
    public static void main(String[] args) {
        System.out.println("我是MainClass的main方法");
    }
}

运行结果

这时候就会打印子类自己的内容了:“我是MainClass的main方法”

三、main方法能重载吗?

重载是在一个类里面,方法名字相同,而参数不同。返回类型可以相同也可以不同的方法。
验证代码(示例):

public class Main {
    public static void main(String args) {
        System.out.println("hello main!" + args);
    }

    public static void main(String[] args) {
        main("你好!");
    }
}

运行结果

通过上述代码我们可知main方法是可以重载的。编译运行,很显然没啥问题,除了 JVM 规定的作为应用程序入口的 main 方法之外,其他的 main 方法都是比较普通的方法。

四、main方法可以被其它方法调用吗

方法的调用就是在一个方法中调用另一个方法,在其它方法中调用main方法。

测试代码(示例):

public class Main {
    private static int times = 3;
    public static void main2(String[] args) {
        times--;
        main(args);
    }
    public static void main(String[] args) {
        System.out.println("main方法执行:" + times);
        if (times <= 0) {
            System.exit(0);
        }
        main2(args);
    }
}

运行结果

通过上述代码我们可知即使是作为应用程序入口的 main 方法,也是可以被其他方法调用的,但要注意程序的关闭方式,别陷入死循环了。


总结

通过上述可知,除了main方法作为应用程序的入口比较特殊外,其他情况下与正常的静态方法是没什么区别的。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/679037.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号