java - 在java中,从不同的包访问 protected 成员

标签 java protected access-specifier

在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.basex 作为 protected 规范,我们只能使用继承,不能使用引用访问basex。要访问衍生 x,我们可以使用super.x,但是从sub衍生,我们如何访问基.x

最佳答案

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

base.x = 123;

你可以写

x = 123;

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

关于java - 在java中,从不同的包访问 protected 成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15602958/

相关文章:

c++ - 什么时候应该限制派生类中虚函数的可访问性?

java - Postgres : Query in Idle Transaction State

java - 组织.hibernate.QueryException : Not all named parameters have been set:[]

java - Jenkins:EMMA 验证错误

java - 继承后保护成员行为。

c++ - 访问说明符不是万无一失的吗?

c++ - 为什么声明为 "private"的成员函数仍然可以访问?

java - 尝试转换时遇到问题

Python xlwt - 使列只读(单元格保护)

java - 父类访问子类Java的 protected 成员