我想這a.ID()返回0和b.ID()返回1,這裏是我的代碼:更改子類中的靜態變量不改變它的父類
public class A {
public static int id;
public int ID() {return id;}
}
public class B : A { }
public class Main {
void Program() { //This executes when I execute the program
A.id = 0;
B.id = 1;
}
}
但不起作用,這也不起作用:
public class A {
public static int id;
public int ID() {return id;}
}
public class B : A {
public new static int id; //id is actually 1 but ID() is still 0
}
public class Main {
void Program() { //This executes when I execute the program
A.id = 0;
B.id = 1;
}
}
我該如何解決這個問題?
爲什麼你需要這個?爲什麼你需要它是靜態的? –
將你的'static int'變成'properties'。 –
[new modifier](https://msdn.microsoft.com/en-us/library/435f1dw2.aspx)只是隱藏一個成員。你需要重寫它,但它是靜態的,所以你不能。無論如何,你爲什麼要爲它有一個靜態ID和一個實例getter? –