我对这里的代码有疑问
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();
}
}
我知道多态性不适用于静态方法,仅适用于实例方法。而且这种覆盖也不适用于静态方法。
因此我认为这个程序应该打印出:c, d
因为 c 调用了 m1 方法,但它是静态的,所以它不能覆盖,它调用的是 Mini 类中的方法,而不是 Car。
这个对吗?
但是,我的教科书说答案应该是:a,d
是错字吗?因为我现在有点迷茫。
请澄清一下,谢谢。