在Java中,如何访问不同包中的 protected 成员?
package p1
class base
protected int x
package p2
import p1.*
class derived extends base
int x
class subderived extends derived
int x
从 subdriven
main 我想访问 p1.base
的 x
作为 protected 规范,我们只能使用继承,不能使用引用访问base
x
。要访问衍生
x
,我们可以使用super.x
,但是从sub衍生
,我们如何访问基.x
?
最佳答案
protected 成员可以从直接派生类和子派生类访问,无需任何限定符:而不是编写
base.x = 123;
你可以写
x = 123;
只要它是在派生类的方法中,它就能正常编译。但是,为了使其正常工作,您需要从派生类本身中删除同名的成员:否则,基成员将隐藏,并且无法通过多级继承来访问通过语言的正常语法进行层次结构,即不使用反射。
关于java - 在java中,从不同的包访问 protected 成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15602958/