這是很難理解wjat你問,但這裏有一個可能的答案:
製作B類A的子類:
public class A {
// Declaration of the 'array' attribute
public float[] array = new float[]{1.1f, 2.2f, 3.3f};
}
class B extends A {
// Every instance of 'B' also has an 'array' attribute
}
如果array
被重新聲明爲public static
,你會得到一個有array
屬性可以被稱爲A.array
或B.array
的情況。 (或在任何A
或B
剛剛array
...甚至爲a.array
或b.array
其中a
和b
分別有類型A
和B
。)
如果您不能創建A
和B
之間的直接或亞型的關係(或A
,B
和第三類包含聲明),那麼你是運氣不好。他們無法共享聲明。
但是,您可以使用靜態導入來使它看起來像聲明是共享的。例如:
public class A {
// Declaration of the 'array' attribute
public float[] array = new float[]{1.1f, 2.2f, 3.3f};
}
import static A.array;
class B {
// now I can use 'array' without qualifying it with 'A'
}
順便提及,通常是一個壞主意使用static
變量共享狀態,尤其是狀態表示爲裸陣列。這明顯不是面向對象的。
它已經擴展了另一個類。我編輯了我的示例來反映這一點。 – Skizit 2010-07-14 10:02:47