Рассмотрим этот код:
Base.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