這裏如果我嘗試覆蓋靜態方法而不在子類中使用static
,它會給我一個錯誤..雖然這不是靜態變量。爲什麼?使用「非靜態」方法/字段覆蓋「靜態」方法/字段
class A {
static int a;
static void a() {
System.out.println("in A");
}
}
class B extends A {
int a=9;/*this does not give an error*/
void a()/*this statement gives an error*/ {
System.out.println("In B"+(A.a));
}
}
class Test {
public static void main(String []args) {
B b1=new B();
b1.a();
}
}
重寫不適用領域。 –
http:// stackoverflow。com/questions/2223386/why-doesnt-java-allow-overriding-of-static-methods –
你不能覆蓋靜態方法,你會隱藏它們。 – Pshemo