Javaにおける「protected」は、クラスのメンバーに対するアクセス制御を提供するためのアクセス修飾子です。この修飾子を使用することで、同じパッケージ内のクラスや、異なるパッケージに属するサブクラスからメンバーにアクセスできるようになります。
「protected」修飾子は、クラスのフィールドやメソッドが他のクラスからどのようにアクセスされるかを制御します。特に、サブクラスからのアクセスを許可することで、オブジェクト指向プログラミングにおける継承の概念をサポートします。
以下は、「protected」修飾子を使用した基本的な例です。
class Parent {
protected void display() {
System.out.println("親クラスからのメッセージ");
}
}
class Child extends Parent {
public void show() {
display(); // 親クラスのprotectedメソッドにアクセス
}
}
public class Main {
public static void main(String[] args) {
Child child = new Child();
child.show(); // 出力: 親クラスからのメッセージ
}
}
package mypackage;
class Base {
protected void greet() {
System.out.println("こんにちは");
}
}
class Derived extends Base {
public void sayHello() {
greet(); // 同じパッケージ内でアクセス可能
}
}
public class Main {
public static void main(String[] args) {
Derived derived = new Derived();
derived.sayHello(); // 出力: こんにちは
}
}
Javaの「protected」修飾子は、同じパッケージや異なるパッケージのサブクラスからアクセス可能なメンバーを定義するためのアクセス制御の手段です。