很难理解您正在问的问题,但这是一个可能的答案:
使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重新声明为
publicstatic,则会出现一种情况,其中存在一个
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变量共享状态(尤其是表示为裸数组的状态)通常是一个坏主意。这显然是非面向对象的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)