デフォルトでアクセス指定子が public であるメソッドを持つクラスがあります。ここで、このクラスをサブクラスに拡張し、このメソッドをオーバーライドしてアクセス指定子を「プライベート」にしたいと考えています。このコードをコンパイルすると、コンパイル エラーが発生します。
「より弱いアクセス権限を割り当てようとしています」。
サブクラスに弱い権限を割り当てることの何が問題なのか、誰か説明してもらえませんか?
コンパイル エラーの原因となったコードは次のとおりです。
class Superclass
{
void foo()
{
System.out.println("Superclass.foo");
}
}
class Subclass extends Superclass
{
private void foo()
{
System.out.println("Subclass.foo");
}
}