2016-10-27 2 views
7

親クラスのプライベートメソッドBaseが下位クラスの子クラスChildに表示されるのはなぜですか?子クラスと親クラスが両方とも内部クラスの場合の継承動作

public class Trial { 

    class Base { 
     private void foo() 
     { 
     } 
    } 

    class Child extends Base { 
     private void func() 
     { 
      super.foo(); 
     } 
    } 
} 

BaseChildクラスは内部クラスでなかった場合、それは不可能であろう。内部クラスのこの動作はなぜですか?メンバまたはコンストラクタが[次に]アクセスが許可された場合、それがメンバやコンストラクタの宣言を囲むトップレベルクラス(7.6)の本体内で発生した場合にのみされ、プライベート宣言されている[場合]

答えて

関連する問題