Не удается получить доступ к защищенному внутреннему классу во время наследования
Чтение черезМышление на Яве " я застрял в бывшей: 6 главы внутренних классов.
Упражнение 6: (2) Создайте интерфейс с хотя бы одним методом в своем собственном пакете. Создайте класс в отдельном пакете. Добавьте защищенный внутренний класс, который реализует интерфейс. В третьем пакете унаследуйте от своего класса и, внутри метода, верните объект защищенного внутреннего класса, передавая его в интерфейс во время возврата.
Это мой код:
IOne.javaинтерфейс
package intfpack;
public interface IOne{
void f();
}
COne.javaКласс с защищенным внутренним классом, который реализует интерфейс
package classpack;
import intfpack.*;
public class COne{
protected class Inner implements IOne{
public void f(){System.out.println("Inner class of COne");}
}
}
CTwo.javaНаследование от класса с защищенным внутренним классом
package thirdpack;
import classpack.*;
import intfpack.*;
public class CTwo extends COne{
public IOne getInner(){
IOne io = new Inner();
return io;
}
public static void main(String[] args){
CTwo ct = new CTwo();
ct.getInner();
}
}
Копмилер говорит следующее:
javac CTwo.java
CTwo.java:9: Inner() has protected access in classpack.COne.Inner
IOne io = new Inner();
^
1 error
Но книга говорит, что я могу получить доступ к защищенным внутренним классам в производном классе. Где ошибка?