很难理解你问的 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
or B.array
。(或者在 anyA
或B
as just array
... 甚至 asa.array
或b.array
wherea
并分别b
具有类型A
和B
。)
如果您无法在A
and 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
顺便说一句,使用变量来共享状态通常是一个坏主意,尤其是表示为裸数组的状态。这显然是非面向对象的。