クラスとメソッド定義問題

Javaにおける「クラス変数(class変数)」の定義として正しいものはどれですか?

A.クラス内で定義され、インスタンスごとに独立した値を持つ変数のこと
✗ これはインスタンス変数の説明です。インスタンス変数は new でインスタンスを作成するたびに作られます。
B.staticキーワードで宣言され、そのクラスのすべてのインスタンスで共有される変数のこと← 正解
✓ 正解です。クラス変数は static キーワードを使い、クラスに属する変数としてすべてのインスタンスで共有されます。
C.メソッド内でのみ定義でき、メソッドの実行終了後に破棄される変数のこと
✗ これはローカル変数の説明です。ローカル変数はメソッド内でのみ有効です。
D.継承元のクラスから受け継いだ変数で、サブクラスでのみ参照可能な変数のこと
✗ 継承元から受け継いだ変数はフィールドですが、アクセス修飾子によって可視性が決まります。

Oracle Certified Java Programmer, Bronze SE の問題一覧