21xrx.com
2024-06-02 21:48:56 Sunday
登录
文章检索 我的文章 写文章
区别及使用场景
2023-06-16 06:09:13 深夜i     --     --
Java protected private 访问修饰符 成员变量 成员方法 子类 继承 复用

在Java中,protected和private都是访问修饰符,用于控制类中成员变量和成员方法的访问权限。但是它们之间还是有一些区别的。

protected修饰的成员可以在该类及其子类中访问,而private修饰的成员只能在该类内部被访问。因此,protected修饰的成员更加具有扩展性,可以被子类继承和复用。

在使用场景上,如果成员变量或者成员方法只在当前类中使用,可以使用private修饰,避免外部的访问干扰内部的实现逻辑。但是如果该成员变量或者成员方法需要在当前类及其子类中使用,考虑使用protected修饰。

可以通过下面的代码来理解protected和private的区别:


class Animal {

  protected String name = "Animal";

  private int age = 1;

  public void run() {

    System.out.println("Animal can run.");

  }

}

class Dog extends Animal {

  public Dog() {

    super();

    // protected修饰的成员可以在子类中直接使用

    System.out.println("Dog " + name + " is " + age + " years old.");

  }

  @Override

  public void run() {

    super.run();

    System.out.println("Dog can run faster than Animal.");

  }

}

class Main {

  public static void main(String[] args) {

    Dog dog = new Dog();

    // 编译错误,age是private修饰

    // System.out.println(dog.age);

    // 父类的属性可以通过子类的对象来访问

    dog.name = "Jerry";

    dog.run();

  }

}

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复