Java继承:如何在Super中声明静态变量并在子类中实例化它

sta*_*low 0 java oop inheritance

你如何在Super中声明一个静态变量并在子类中实例化它

class A
{
  static Queue<String> myArray;

  public void doStuff()
  {
     myArray.add(someMethod.getStuff());
  } 

}
class B extends A
{
  myArray = new LinkedList<String>();

}

class C extends A
{
  myArray = new LinkedList<String>();

}
Run Code Online (Sandbox Code Playgroud)

显然这不起作用.但是你会如何宣布一个变量; 然后用超类中的变量做一些常用功能; 然后确保每个子类获得它自己的静态LinkedList?

Lou*_*man 5

你不能沿着这些方向做事.你可以做的最接近的是在超类中使用抽象(非静态)方法并用它做一些事情.

但是一般来说,你不能强制子类做任何静态的事情,你不能像你想要的那样从超类访问子类的静态字段.