protected当类需要与其继承者一起工作时,将使用访问级别。
例如,想象一个Shape可以向外界报告其面积的抽象类。
不同的形状,如三角形、正方形和圆形,有不同的描述(角度、边长、半径),并以不同的方式计算它们的面积。
该类Shape可能有一个公共getArea()方法,该方法返回保存该区域的私有变量。
设置此变量的最佳方法是调用一个由子类调用protected的方法。setArea(double)
因此,Circle会打电话setArea(PI * radius * radius),Square会打电话setArea(side * side),等等。
请注意,这不一定是一个好的设计(但它是一个很好的例子protected)