【发布时间】:2011-06-21 09:19:21
【问题描述】:
我只是从一个例子开始,它解释得最好:
public abstract class A{
static String str;
}
public class B extends A{
public B(){
str = "123";
}
}
public class C extends A{
public C(){
str = "abc";
}
}
public class Main{
public static void main(String[] args){
A b = new B();
A c = new C();
System.out.println("b.str = " + b.str);
System.out.println("c.str = " + c.str);
}
}
这将打印出来:
b.str = abc
c.str = abc
但我想要一个解决方案,其中每个实例化超类的子类都有自己的自己的类变量,同时我希望能够通过标识符引用该类变量,或者在抽象超类中定义的方法调用。
所以我希望输出是:
b.str = 123
c.str = abc
这可行吗?
【问题讨论】: