保護された修飾子を使用すると、そのパッケージ内でメンバーにアクセスしたり、他のパッケージのサブクラスからメンバーにアクセスしたりできます。
保護されたメンバーはすべてのサブクラスで使用できますが、パッケージ外のコードによるアクセスからは保護されたままです。
例は、保護された効果をよりよく理解するのに役立ちます。
この例では、インスタンス変数が保護されるように Book クラスが変更されています。
ExtBook という Book のサブクラスを作成します。
ExtBook を使用する ProtectDemo というクラスを作成します。
ExtBook は、発行者名を保存するフィールドを追加します。
ExtBook にもいくつかのアクセサー メソッドがあります。
2 つのクラス (ExtBook と ProtectDemo) は bookpackext パッケージ内にあります。
ExtBook は Book を拡張するもので、異なるパッケージ内にある場合でも、保護された Book メンバーにアクセスできるようになります。
ExtBook は、タイトル、作成者、pubDate などの保護されたメンバーに直接アクセスし、これらの変数のアクセサー メソッドを作成できます。
ProtectDemo は Book のサブクラスではないため、ProtectDemo クラスでは、これらの変数への直接アクセスが拒否されます。
books[0].title = "test title"; 行からコメントを削除すると、アクセス制限によりプログラムはコンパイルされません。
以上が保護されたメンバーについて理解するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。