1.
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();
}
编译错误 静态方法不能再子类中被重写
2.
public class Person {
static void run(){
System.out.println("人人人");
};
}
public class Zhangsan extends Person{
static void run(){
System.out.println("张三张三张三");
}
}
@Test
public void test5(){
Person p = new Person();
Person z = new Zhangsan();
p.run();
z.run();
}
输出:
人人人
人人人
static方法不能被子类覆盖 但是2中虽然看起来是重写 但实际上并没有重写 因为加@Override会报错