在Java中,为什么Observable的setChanged()方法是受保护的?

6

如果一个Java类,比如classA,继承自classB,它就不能再继承Observable。但是,如果setChanged()函数是公共的,而不是受保护的,我们可以使用组合在classA中创建一个Observable实例。

我想知道将setChanged()设置为protected的思考过程是什么。

1个回答

4
如果setChanged等方法是公开的,那么任何东西都可以改变它们。只有对象本身才能够改变它们。
为了处理继承ClassBClassA的情况,你可能需要在ClassA上拥有一个返回Observable的方法;在ClassA内部,这个可观察对象是一个继承Observable的内部类,只有ClassA才能访问它。
这非常类似于集合和Iterator的工作方式。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接