0

在 Java 中,如何访问不同包中的受保护成员?

package p1
    class base      
        protected int x

package p2
    import p1.*
    class derived extends base
        int x

class subderived extends derived
     int x

subderivedmain 我想访问xp1.base受保护规范我们只能使用继承,我们不能使用对访问的引用base x。要访问derived x我们可以使用super.x,但是从subderived,我们怎么访问base.x

4

1 回答 1

2

受保护的成员可以从直接派生和子派生类访问,无需任何限定符:而不是编写

base.x = 123;

你可以写

x = 123;

只要它在派生类的方法中,它就会编译得很好。但是,为了使其工作,您需要从派生类本身中删除具有相同名称的成员:否则,基成员是隐藏的,并且不能通过多于一级的继承层次结构通过正常语法访问语言,即不使用反射

于 2013-03-24T19:35:10.360 回答