如何在 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>();
}
显然这是行不通的。但是你会如何声明一个变量?然后用父类(super class)中的变量执行一些常见的功能;然后确保每个子类都有自己的静态 LinkedList?
最佳答案
你不能按照这些思路做事。您能做的最接近的事情就是在父类(super class)中拥有一个抽象(非静态)方法并用它做一些事情。
但一般来说,您不能强制子类执行任何静态操作,并且您无法像您尝试那样从父类(super class)访问子类的静态字段。
关于Java继承: How to declare a static variable in Super and instantiate it in subclass,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12979946/