java - 继承静态保护内部类,javac报错

标签 java generics inheritance javac

考虑这段代码:

基础.java

package package1;

public class Base<I extends Base.Inner>{
    protected static class Inner{}
}

Derived.java

package package2;

public class Derived extends Base<Derived.Inner>{
    static class Inner extends Base.Inner{}
}

基类编译没有问题。派生类编译失败,第一个错误是

Derived.java:6: error: Inner has protected access in Base
   public static class Inner extends Base.Inner{}
                                         ^

我没有看到代码中的错误。请解释一下。 JDK 1.8.0_40

最佳答案

能够在 Derived Derived 中使用 Base 中的 protected 内容(属性、内部类、方法) > 类应该与 Base 在同一个包中,或者应该扩展 Base

关于java - 继承静态保护内部类,javac报错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53587425/

相关文章:

Scala 构造函数继承

c++ - 适当的继承设计

java - rich :datatable 中的默认排序列

java - 扩展 logback 并允许客户端使用干净的 slf4j

java - 迁移到 Spring 3 后从 Eclipse IDE 启动基于 Maven 的 GWT 应用程序时出现 Spring NamespaceHandler 问题

java - 使方法通用

java - 找不到虚拟机错误 : Eclipse

generics - 在方法中使用通用类型的接口(interface)

C# 泛型 : Better Way to Match the Generic's Type to Another?

java - 为什么有时我们必须在 Android 中调用 super ?