编译并执行以下程序时,输出结果是什么?( )
class Base {
static void test() {
System.out.println("Base.test()");
}
}
public class Child extends Base {
void test() {
System.out.println("Child.test()");
Base.test(); //Call the parent method
}
static public void main(String[] a) {
new Child().test();
}
}Child.test()
Base.test()
Child.test()
Child.test()
编译错误。不能用实例方法覆盖静态方法
运行时错误。不能用实例方法覆盖静态方法
与实例方法不同,静态方法不能覆盖。当我们在子类中使用与父类中静态方法名称和签名相同的方法时,子类实际上是定义了一个新的静态方法,而不是覆盖了父类的静态方法。