多态性和静态方法
2022-09-03 17:08:46
我有一个关于这个代码的问题就在这里
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
是错别字吗?因为我现在有点困惑。
请澄清这一点,谢谢。