の静的フィールド、最高のそれを説明する:のJava:私はちょうど例から始める抽象クラス
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
しかし、私はスーパークラスをインスタンス化する各サブクラスが自身のクラス変数を持ち、同時に必要な解決策を望みます抽象スーパークラスで定義された識別子またはメソッド呼び出しを通じてそのクラス変数を参照できるようにすることです。
だから私は出力がなりたい:= 123
c.str
b.str = ABC
はなんとかということですか?
私の投稿を編集しましたが、エラーです。つまり、それぞれのオブジェクトは、同じサブクラスのすべてのオブジェクト間で共有される値への参照を持つ必要がありますが、必ずしも異なるサブクラスのオブジェクト間で共有される必要はありません。 – Tommy
私の答えも更新 – Ralph
もちろん。ありがとうございました。 – Tommy