オーバーライド時のアクセス権について

[戻る]
ヒデサク 2008/04/30(水) 11:21:13
はじめまして。
クラスを継承しメソッドをオーバーライドした際の
アクセス権についての質問なのですが。

例)
class A{
    public void methodA(){
    }
}
class B extends A{
    private void methodA(){  // オーバーライド
    }
}

の様に親クラスのメソッドをオーバーライドする際、
なぜアクセス権を強くする方向にするとコンパイルエラーになるのでしょうか?
なにかその様にするとまずい理由があるのでしょうか。
それとも単なるJavaの仕様なのでしょうか。
どなたか教えて頂けないでしょうか。
宜しくお願いします。

シャノン 2008/04/30(水) 12:12:53
例えば、

A a = new B();
a.methodA();

というコードを書かれたら、B.methodA が呼ばれてしまいますよね。
制限を強くしても無意味だからではないでしょうか。

古いスレッドには追加発言できません。