質問: Javaに関する質問です。
回答: オーバーライドの参照範囲はprotectedあるいは無指定メソッドをpublic化することはできますが、それ以外の場合は元の参照範囲と同じにする必要があります。 今回のケースですと、class Aのメソッド a()は無名参照範囲となっていますので、class Bのメソッド a()は無名かpublicの参照範囲とする必要があります。 よって、class Bのメソッド a()をprotectedにしたいのであれば、class Aのメソッド a()もprotectedで宣言する必要があります。