在java保护的成员从不同的包访问

时间:2013-03-24 19:30:50

标签: java protected access-specifier

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

package p1
    class base      
        protected int x

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

class subderived extends derived
     int x

subderived主要我希望访问x p1.base作为受保护的规范我们只能使用继承,我们无法使用引用来访问base {{1} }。要访问x derived,我们可以使用x,但是super.x,我们如何才能访问subderived

1 个答案:

答案 0 :(得分:2)

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

base.x = 123;

你可以写

x = 123;

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