Java 为什么超类中的主要方法由JVM执行?

Java 为什么超类中的主要方法由JVM执行?,java,Java,当我执行: java B 对于下面的程序,为什么调用超类A的main?据我所知,静态方法属于类级别 class A { public static void main(String[] args) { System.out.println("A.main"); } } class B extends A{ } 静态方法由子类继承 剧透:是的,他们are@Aaron我不认为这是重复的,它还必须与JVM一起启动。@Tony你是对的,还有一点,但可以很容

当我执行:

 java B
对于下面的程序,为什么调用超类A的main?据我所知,静态方法属于类级别

class A
{
    public static void main(String[] args)
    {
        System.out.println("A.main");
    }
}

class B extends A{ }

静态方法由子类继承

剧透:是的,他们are@Aaron我不认为这是重复的,它还必须与JVM一起启动。@Tony你是对的,还有一点,但可以很容易地在一条评论中说清楚:
JavaB
将调用
B.main(String[]args)
,这是静态的
main(String[]args)
继承自
A
@Tony当然,如果你认为还有更多,可以投票重新讨论这个问题,但我真的认为OP误解的根源是错误地认为静态方法不是继承的。@Aaron但它与call
B.main
不同。JVM使用更复杂的方式调用它,OP如何确保它们具有相同的效果?