我对此代码有疑问
public Car {
public static void m1(){
System.out.println("a");
}
public void m2(){
System.out.println("b");
}
}
class Mini extends Car {
public static void m1() {
System.out.println("c");
}
public void m2(){
System.out.println("d");
}
public static void main(String args[]) {
Car c = new Mini();
c.m1();
c.m2();
}
}
Run Code Online (Sandbox Code Playgroud)
我知道多态不适用于静态方法,只适用于实例方法.并且覆盖不适用于静态方法.
因此我认为这个程序应该打印出来:c,d
因为c调用m1方法,但它是静态的,所以它不能覆盖并且它在类Mini而不是Car中调用方法.
它是否正确?
但是,我的教科书说答案应该是:a,d
这是一个错字吗?因为我现在有点困惑.
请清楚这一点,谢谢.