从理论上讲,受保护的属性(变量)在面向对象的语言中是一种反模式。如果仅子类需要访问其超类的成员属性,则将属性本身定义为私有并创建受保护的访问器方法(getter和setter)。这种方法采用了“信息隐藏”的概念。还有一个替代解决方案:定义受保护的不可变(最终)成员属性。

从理论上讲,受保护的属性(变量)在面向对象的语言中是一种反模式。如果仅子类需要访问其超类的成员属性,则将属性本身定义为私有并创建受保护的访问器方法(getter和setter)。这种方法采用了“信息隐藏”的概念。还有一个替代解决方案:定义受保护的不可变(最终)成员属性。