为什么在Java中使用受保护的访问修饰符?

如果使用protected访问修饰符指定了类的数据成员和方法,则可以从相同的包或不同包中的子类访问它们。关键字protected用于指定此修饰符。

给出了一个演示Java中受保护的访问修饰符的程序,如下所示:

示例

class A {
   protected int a = 9;
   public void printA() {
      System.out.println("Value of a = " + a);
   }
}
public class Demo {
   public static void main(String args[]) {
      A obj = new A();
      obj.a = 18;
      obj.printA();
   }
}

输出结果

Value of a = 18

现在让我们了解上面的程序。

类A具有受保护的数据成员a,可以从相同的包或不同包中的子类访问该数据成员。public方法printA()显示a的值。演示此代码段如下:

class A {
   protected int a = 9;
   public void printA() {
      System.out.println("Value of a = " + a);
   }
}

main()类Demo中的方法中,创建了类A的对象obj。obj.a的值被修改,这是可能的,因为它受保护并且修改是在同一包中完成的。然后printA()调用方法。演示此代码段如下:

public class Demo {
   public static void main(String args[]) {
      A obj = new A();
      obj.a = 18;
      obj.printA();
   }
}