Javaのプロテクトとは何ですか

(*-*)浩
リリース: 2019-05-27 17:56:27
オリジナル
9029 人が閲覧しました

protect は Java の許可キーワードであり、通常は使用範囲を指定します。

Javaのプロテクトとは何ですか

protected:

親クラスの保護されて変更されたクラス メンバーがパッケージに表示されますそしてそのサブクラスが表示されます。

親クラスとサブクラスは同じパッケージ内にありません。サブクラスは、親クラスから継承された保護されたメンバーにのみアクセスできますが、親クラスによってインスタンス化されたメンバーにはアクセスできません。

保護されたメソッドの可視性の次の例を通じて、保護されたキーワードについてさらに理解することができます。保護されたメンバーに関係する呼び出しが発生した場合は、まず保護されたメンバーがどこから来たのか、その可視範囲がどのようなものかを判断する必要があります。その後、現在の使用法が実行可能かどうかを判断できます

例:

//示例一
package p1;
public class Father1 {
   protected void f() {}    // 父类Father1中的protected方法
}

package p1;
public class Son1 extends Father1 {}

package p11;
public class Son11 extends Father1{}

package p1;
public class Test1 {
   public static void main(String[] args) {
       Son1 son1 = new Son1();
       son1.f(); // Compile OK     ----(1)
       son1.clone(); // Compile Error     ----(2)

       Son11 son = new Son11();    
       son11.f(); // Compile OK     ----(3)
       son11.clone(); // Compile Error     ----(4)
   }
}
ログイン後にコピー

上の例では、まず (1)(3) を見てください。ここで、 f() メソッドはクラス Father1 から継承されており、その可視性はパッケージ p1 とそのサブクラス Son1 および Son11 です。 f() メソッドを呼び出すクラス Test1 のパッケージも p1 であるため、(1) と (3) は正常にコンパイルされます。次に、(2)(4) を見てください。 clone() メソッドの可視性は、java.lang パッケージとそのすべてのサブクラスです。ステートメント "son1.clone();" および "son11.clone();" については、 、2 ユーザーの clone() はクラス Son1 と Son11 には表示されますが、Test1 には表示されないため、(1) と (3) のコンパイルは失敗します。

概要

protected は、Java クラス メンバーのアクセス許可修飾子としては最も理解しにくいものです。プログラミングでは、protected が関係する呼び出しに遭遇した場合、まず protected メンバーがどこから来たのか、その可視範囲がどのくらいかを判断し、それを正しく使用する必要があります。

以上がJavaのプロテクトとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート