在java中,为什么Observable的setChanged()被保护了?

In java, why is Observable's setChanged() protected?

如果 java class,比如说 classA,正在扩展 classB,它不能扩展 Observable。但是如果 setChanged() 函数是 public,而不是受保护的,我们可以使用组合在 classA.

中创建 Observable 的实例

我想知道使 setChanged() 受到保护的背后的思考过程是什么。

如果 setChanged 等是 public,那么任何事情都可以改变他们。只有对象本身才能更改它们。

要处理扩展 ClassBClassA 的情况,您可能希望在 ClassA 上有一个方法,即 returns 和 Observable ;在 ClassA 中,observable 是一个扩展 Observable 的内部 class,只有 ClassA 可以访问。

这就是集合和 Iterator 工作的方式。