java继承中的隐藏方法

Sam*_*Sam 3 java oop static-methods overriding method-hiding

我有两节课如下:

public class Car {
    public static void print() {
        System.out.println(getWord());
    }

    public static String getWord() {
        return "CAR";
    } 
}

public class BMW extends Car {
    public static String getWord() {
        return "BMW";
    } 
}

// main method
public static void main(String args[]) {
    BMW.print();
}
Run Code Online (Sandbox Code Playgroud)

运行上面的示例后,打印此输出:

汽车

我的问题是:为什么方法getWord()不被覆盖?

Rap*_*ael 7

无法覆盖静态方法,因为方法覆盖仅发生在方法的动态(即运行时)查找的上下文中.静态方法(按名称)静态查找(即在编译时).

  • OP正在谈论"方法隐藏",而不是覆盖. (2认同)