为什么在没有NullPointerException的情况下运行空对象时调用此方法?

ary*_*yan 11 java

输出的原因是什么?我知道它可以打印,Hello World但是不知道为什么它应该给出NullPointerException

public class Null
{
    public static void greet()
    {
        System.out.println("Hello World");

    }
    public static void main(String[] args)
    {
        ((Null)null).greet();
    }
}
Run Code Online (Sandbox Code Playgroud)

Cod*_*ode 9

这是因为greet()是静态方法。所以

((Null)null).greet();
Run Code Online (Sandbox Code Playgroud)

等价于

Null.greet()
Run Code Online (Sandbox Code Playgroud)