我可以在Java中使用带有public static void main(String args []){}方法的最终访问修饰符吗?

时间:2015-05-31 09:14:29

标签: java main access-modifiers

class Test{

    public static final void main(String args[]){

    }

}

Java 1.8中的main()可以使用哪些其他访问修饰符?

4 个答案:

答案 0 :(得分:4)

是的,你可以,但final与静态方法一起使用时没有意义,因为无论如何都不能覆盖静态方法。

顺便说一句,final和static不是访问修饰符。 Access modifiers控制允许哪个实体访问方法/字段。

答案 1 :(得分:4)

您可以使用final修饰符。您只需编译您在问题中提供的程序即可看到。

关于应用于方法的final关键字,Java Language Specification可以说明这一点:

  

可以将方法声明为final,以防止子类覆盖或隐藏它。

也就是说,如果方法是实例方法(非静态),则可以覆盖它,final将阻止它。如果方法是静态的,则可以隐藏它,final将阻止该方法。

答案 2 :(得分:0)

final不会影响该方法,因为它已经声明为static,因此它不会以任何方式影响程序。它只表示您无法在子类中隐藏此方法。

因此,如果你想上课

class Hello2 extends Test {
....
}

您无法在此课程中创建public static void main(String args[])函数。

答案 3 :(得分:0)

static方法可以final。正如Java Language Specification第8.4.4.3节所述,当静态方法是最终的时,它意味着子类不能“隐藏”它,即定义一个具有相同名称和相同签名的方法。

因此,您可以在final方法上使用main。该方法可用作程序的主要入口点。此外,子类或您的主类将无法隐藏它。