作用域 当前类 同一package 子孙类 其他package
public √ √ √ √
protected √ √ √ ×
friendly √ √ × ×
private √ × × ×
不同 modifier 的作用如上图所示: public > protected > package >private
但是 protected 具体在什么场合下应用呢?
“ Generally, if something is not deliberately conceived as public, I make it private.
If a situation arises where I need access to that private variable or method from a derived class, I change it from private to protected. ”
一般来说,如果不想被类之外的访问,则设为 private.
但是如果想让某些变量或者 method 可以在子类中访问,就可以把这些变量或者 method 设为 protected. 因此 protected 主要是在继承中的应用。
public class Animal {
protected String name;
public Animal(String name) {
this.name = name;
}
public void printName() {
System.out.println(name);
}
}
public class Bird extends Animal {
public Bird(String name) {
super(name);
}
public void printBird() {
System.out.println(name);
}
}
理解Java中的访问修饰符及protected用法
本文深入解析Java中的访问修饰符概念,并详细解释protected关键字的应用场景,通过实例展示protected如何在继承关系中发挥作用。
818

被折叠的 条评论
为什么被折叠?



