我刚刚开始一个例子,最好的解释:
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
这是可行吗?