Il est difficile de comprendre wjat que vous demandez, mais voici une réponse possible:
Marque classe B une sous-classe 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
}
Si array
est redéclarée être public static
, vous obtenez un situation où il y a un attribut array
qui peut être appelé A.array
ou B.array
. (Ou dans A
soit ou B
comme juste array
... ou même a.array
ou b.array
où a
et b
ont des types A
et B
respectivement.)
Si vous ne pouvez pas créer une relation directe ou sous-type entre A
et B
(ou A
, B
et une troisième classe contenant les déclarations) alors vous n'avez pas de chance. Il n'y a aucun moyen qu'ils puissent partager des déclarations. Toutefois, vous pouvez utiliser des importations statiques pour donner l'impression que la déclaration est partagée. Par exemple:
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'
}
Soit dit en passant, il est généralement une mauvaise idée d'utiliser static
variables à partager l'état, en particulier l'état représenté des tableaux comme nus. Ceci est distinctement non orienté objet.
Cela étend déjà une autre classe. J'ai modifié mon exemple pour refléter cela. – Skizit