質問: Javaの質問です。
回答: > スーパークラスにabstract void a();という... 質問文に書かれてるとおりの、 パッケージプライベート(アクセス修飾子が書かれていない) であるなら、 > サブクラスでprotected void a(){}という形にできるのでしょうか? は可能です。 public, protected, private いずれのアクセス修飾子も 書かれてないのは、同一パッケージ内からのみアクセス可能 というアクセススコープ。 protected は、これより「広い」ので、オーバーライド時に 変更可能。 質問文が間違ってて、スーパークラスが public abstract void a(); なら、不可(コンパイルエラーにされる)。 protected は public よりも「狭い」から。