我想了解我在Java中使用多态的方法。我创建了一个拥有太多通用方法的父类,所有孩子都会以相同的方式使用。
每个子类的子元素都共享静态信息,这些变量或信息将用于仅在父类中声明的方法中。
问题希望从父方法访问静态变量似乎不是真的可能,
它是一种解决方案来声明每个实例的公用信息,但因为将有1000个实例它的这样的浪费内存。
的我的意思是将以下代码的简单阐述:Java:父类访问子类的静态变量的方法?
class testParent {
static int k;
public void print()
{
System.out.println(k);
}
}
class testChild2 extends testParent
{
static
{
testChild2.k =2;
}
}
public class testChild1 extends testParent{
static
{
testChild1.k = 1;
}
public static void main(String[] args)
{
new testChild1().print();
new testChild2().print();
new testChild1().print();
}
}
i的输出想到的是
1.
但发生的事情是:
有人可能会认为,在启动每个子类时这个子类的静态变量被设置,然后引用这个子类的所有方法都可以访问相应的'k'值。
但实际情况是,所有子类都编辑在所有子类共享的相同静态变量中,因此破坏了我为每个子类及其实例使用静态变量的整个观点,并在访问这些变量的Parent中使用commmon方法。
任何想法如何做到这一点?
是否ķ必须是静态的? – Belinda 2011-03-22 16:43:00
是的,因为在我的应用程序中,每个子类在运行时将至少有500个实例,并且公共变量是字符串数组,你不觉得它浪费大量内存而不使用静态吗? – Adham 2011-03-22 19:31:01