基底クラスのstaticな領域は異なる派生クラス同士で共有されるのか?

と疑問に思い試してみた。答えは「共有される」

親クラス
class Parent {
        static int m_counter = 0;

        public static int countInternal() {
                m_counter++;
                return m_counter;
        }
}
派生クラス1
class Sub1 extends Parent {
        public int count() {
                return countInternal();
        }
}
派生クラス2
class Sub2 extends Parent {
        public int count() {
                return countInternal();
        }
}
テスト用main
class Main {
        public static void main(String[] args) {
                System.out.println("Hello");

                Sub1 sub1 = new Sub1();
                Sub2 sub2 = new Sub2();

                System.out.println("sub1:" + sub1.count());
                System.out.println("sub1:" + sub1.count());
                System.out.println("sub1:" + sub1.count());

                System.out.println("sub2:" + sub2.count());
                System.out.println("sub2:" + sub2.count());
                System.out.println("sub2:" + sub2.count());
        }
}
実行結果
D:\MyProject\java\static>java Main
Hello
sub1:1
sub1:2
sub1:3
sub2:4
sub2:5
sub2:6

まだまだjavaをよく理解してないなオレ。