我正在读书The Java Programming Language, 3rd edition。
在第3.5章中,它用以下单词说明了protected
修饰符:
更确切地说,除了可以在类本身内部访问以及在 同一包,也可以通过对象引用从类访问受保护的成员 至少与该类具有相同类型的类型,即对该类的类型的引用或 其子类型之一。
这些词使我感到困惑,在[[two方面:
1。
受保护的成员可以被同一包中的代码访问吗?我以前知道的受保护成员只能由子类访问...2。
我不明白a protected member can also be accessed from ...
是什么意思,任何人都可以向我解释吗? protected
成员可以从类本身,该类的子类以及该类的同一包中的所有类(无论这些子类是否为子类)访问。如果您之前不知道最后一部分,那么您刚刚学到了一些新知识。protected
表示该成员可以被同一包中的任何类以及子类访问,即使它们位于另一个包中。注
A protected variable is not visible outside the package
例如,B扩展了A并且A具有受保护的int x;它可以在类B中使用。但是不能使用其实例变量进行访问]
2)这意味着子类可以访问它们。
我不知道也可以从...访问受保护的成员,这意味着任何人都可以向我解释?
例如,您有一个对象A和一个对象B,它们都是同一类。如果对象A引用了对象B,则它可以查询对象B的受保护属性和方法。 protected修饰符在类级别而不是对象级别强制执行。在某些情况下可以派上用场。