Javaのアクセス許可修飾子(保護)

ブログのソース:

参照ブログのソース:https : //blog.csdn.net/asahinokawa/article/details/80777302

以前は一方的なことを知っていましたが、今は修正する必要があります

誤解:保護されたメンバーはサブクラスから見えます。

現在の一方的な理解は次のとおりです。保護されたメンバーのサブクラスに対する可視性は、2つの状況に分けられます。

1.子クラスと親クラスが同じパッケージ内にある場合、親クラスの保護されたメンバーはパッケージ内の子クラスに表示されます。

親クラスの2サブクラスは、同じパッケージ内にないとき、サブクラスのインスタンスは、親クラスから継承し、その保護されたメンバーにアクセスすることができ、かつアクセスすることができない親クラスのインスタンス protectedメンバのを。

 コード分​​析は次のとおりです。

パッケージcom.erlang.modifer01;
//父类Animal 
public class Animal { private String name; protected void run(){ } }

 

パッケージcom.erlang.modifer01;
//同じパッケージのクラス
public  class Dog {
     public  static  void main(String [] args){
        動物anl = new Animal();
        anl.name = "erhua"; // 
    anl.run を介してコンパイル(); //     }を介してコンパイル

}    
package com.erlang.modifer02; 
import com.erlang.modifer01;
// 異なるパッケージの下の サブクラス public class Dog extends Animal { public static void main(String [] args){ Animal anl = new Animal(); anl.name = "erhua"; //コンパイルエラー    anl.run(); //コンパイルエラー Dog dog = new Dog(); dog.name = "erha"; // dog.run によってコンパイルされた(); // } によってコンパイルされた }

 

おすすめ

転載: www.cnblogs.com/erlang-sh/p/12733944.html