继承受静态保护的内部类,javac错误投诉
考虑以下代码: Base.java继承受静态保护的内部类,javac错误投诉,java,generics,inheritance,javac,Java,Generics,Inheritance,Javac,考虑以下代码: Base.java package package1; public class Base<I extends Base.Inner>{ protected static class Inner{} } package package2; public class Derived extends Base<Derived.Inner>{ static class Inner extends Base.Inner{} } 我看代码中没
package package1;
public class Base<I extends Base.Inner>{
protected static class Inner{}
}
package package2;
public class Derived extends Base<Derived.Inner>{
static class Inner extends Base.Inner{}
}
我看代码中没有错误。请解释一下
JDK1.8.0(40
能够使用受保护的内容(属性、内部类、方法)从Base
内部Derived
Derived
类应该与Base
在同一个包中,或者应该扩展Base
这在版本9中是固定的。您的Derived
类没有扩展Base
类。很抱歉,派生声明应该是“公共类派生扩展基”很抱歉,输入错误。当然派生扩展基,请参阅固定代码。@SergeyS。这是一个很好的使用is a的机会,有一个问题。Base是一个基。Inner或Base有一个基。Inner?public class Base{
您需要的零件look@HRgiger,我不明白你的意思,你能说清楚一点吗?
Derived.java:6: error: Inner has protected access in Base
public static class Inner extends Base.Inner{}
^