通知
すべてクリア
Topic starter
2008年4月30日 11:21 AM
はじめまして。
クラスを継承しメソッドをオーバーライドした際の
アクセス権についての質問なのですが。
例)
class A{
public void methodA(){
}
}
class B extends A{
private void methodA(){ // オーバーライド
}
}
の様に親クラスのメソッドをオーバーライドする際、
なぜアクセス権を強くする方向にするとコンパイルエラーになるのでしょうか?
なにかその様にするとまずい理由があるのでしょうか。
それとも単なるJavaの仕様なのでしょうか。
どなたか教えて頂けないでしょうか。
宜しくお願いします。
2008年4月30日 12:12 PM
例えば、
A a = new B();
a.methodA();
というコードを書かれたら、B.methodA が呼ばれてしまいますよね。
制限を強くしても無意味だからではないでしょうか。