前提として、
『継承する場合、静的メンバ(static)はサブクラスに引き継がれない』はずだが。。。
↓ 試してみた結果。
//スーパークラス
class Animal{
static int n; → 静的メンバなので、サブクラスには継承されない(はず)
}
//サブクラス
class Dog extends Animal{}
//実行クラス
public class Exec {
public static void main(String[] args) {
Animal a = new Animal();
Dog d = new Dog();
a.n = 10; → コンパイルエラーではない。
System.out.println(a.n); → 「10」と表示される
System.out.println(d.n); → 「10」と表示される
System.out.println(Animal.n); → 「10」と表示される
d.n = 20;
System.out.println(a.n); → 「20」と表示される
System.out.println(d.n); → 「20」と表示される
System.out.println(Animal.n); → 「20」と表示される
Animal.n = 30;
System.out.println(a.n); → 「30」と表示される
System.out.println(d.n); → 「30」と表示される
System.out.println(Animal.n); → 「30」と表示される
}
}
。。。頭の整理が必要みたい。。。