小编Spe*_*ead的帖子

使用子类中的super关键字访问超类私有字段

对于编码项目,我有一个包含嵌套类的类.嵌套类在同一外部类中进行子类化.目的是让外部类包含嵌套类的一些实例,它可以将其交给外部类的其他实例.

嵌套子类允许外部类修改内容,而其超类允许读取内容并调用某些方法.因此,超类对象被传递给其他对象以链接链中的外部类对象.

我的问题涉及访问修饰符.这是一个极简主义的代码示例:

abstract class OuterClass {


    protected class NestedSuperClass<T> {
        private T data;

        public NestedSuperClass (T t) {
            this.data = t;
        }

        public T getOutput() {
            return data;
        }
    }

    protected class NestedSubClass<T> extends NestedSuperClass<T> {
        public NestedSubClass (T t) {
            super(t);
        }

        protected void setOutput(T t) {
            super.data = t;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在查找一些文档时,我对访问超类的私有字段的能力感到困惑,这些字段在任何地方都没有提到.是否有任何资源解释为什么允许子类以这种方式修改超类的私有字段?

这项工作我完全没事.我还注意到它似乎与数据被标记为受保护而不是私有而不使用超级关键字.我最感兴趣的是提到super关键字的这种能力的任何文档.提前致谢.

java inheritance class

12
推荐指数
2
解决办法
6575
查看次数

标签 统计

class ×1

inheritance ×1

java ×1