protected受访问保护规则是很微妙的。
虽然protected域对所有子类都可见。但是有一点很重要,子类只能在自己的作用范围内访问自己继承的那个父类protected域,该子类无法到访问别的子类(同父类的亲兄弟)所继承的protected域。
protected的可见性在于两点:
static:修饰变量和内部类(不能修饰常规类),其中所修饰变量称为类变量或静态变量。静态变量是和类层次的变量,每个实例共享这个静态变量,在类加载时初始化。
final:被声明为final的变量必须在声明时给定初值(当然,空白final可以延迟到构造器中赋值),而且被修饰的变量不能修改值。当修饰类时,该类不能派生出子类;修饰方法时,该方法不能被子类覆盖。
default:即不加任何访问修饰符,通常称为“默认访问模式“。该模式下,只允许在同一个包中进行访问。
abstract:修饰类和方法。当修饰类时,该类不能创建对象;修饰方法时,为抽象方法。类只要有一个abstract方法,类就必须定义为abstract,但abstract类不一定非要有abstract方法不可。
原文:https://www.cnblogs.com/hugeba/p/12744304.html