在Java中,我可以将最终访问修饰符与公共静态void main(String args[]){}方法一起使用吗?
Java 1.8中的main()还可以使用哪些访问修饰符 可以,但是与静态方法一起使用时,在Java中,我可以将最终访问修饰符与公共静态void main(String args[]){}方法一起使用吗?,java,main,access-modifiers,Java,Main,Access Modifiers,Java 1.8中的main()还可以使用哪些访问修饰符 可以,但是与静态方法一起使用时,final没有意义,因为静态方法无论如何都不能被重写 顺便说一下,final和static不是访问修饰符。控制允许哪个实体访问方法/字段。final不会影响该方法,因为它已声明为静态,因此不会以任何方式影响程序。这只意味着您不能在子类中隐藏此方法 所以如果你想上一门课 class Test{ public static final void main(String args[]){ }
final
没有意义,因为静态方法无论如何都不能被重写
顺便说一下,final和static不是访问修饰符。控制允许哪个实体访问方法/字段。
final
不会影响该方法,因为它已声明为静态,因此不会以任何方式影响程序。这只意味着您不能在子类中隐藏此方法
所以如果你想上一门课
class Test{
public static final void main(String args[]){
}
}
您不能在此类中创建
公共静态void main(字符串args[])
函数。您可以使用final
修饰符。你可以通过简单地编译你在问题中给出的程序看到这一点
对于应用于方法的final
关键字,有如下说明:
方法可以声明为final,以防止子类重写或隐藏它
也就是说,如果该方法是一个实例方法(不是静态的),则可以重写它,并且
final
将防止这种情况发生。如果一个方法是静态的,它可以被隐藏,而final
将阻止这种情况。一个静态的方法可以final
。如第8.4.4.3节所述,当静态方法是最终方法时,这意味着子类不能“隐藏”它,即定义具有相同名称和相同签名的方法
因此,您可以在main
方法上使用final
。该方法可用作程序的主要入口点。此外,子类或主类将无法隐藏它。编译器会怎么说?无编译错误其他可选说明符可以与main()一起使用什么Java中的方法?静态
方法无法重写。我检查了编译器,当超类方法不是最终
时,它实际上可以在超类中隐藏该方法。你指的是别的吗?@Pshemo,编辑了答案以确保正确性。感谢您让我们注意到我们称之为Java中的静态、最终关键字(非访问修饰符:)
class Hello2 extends Test {
....
}