No se puede acceder a la clase interna protegida mientras se hereda

Leyendo "Pensando en Java" me quedé atrapado en el ejemplo: 6 del capítulo de Clases Internas.

Ejercicio 6: (2) Cree una interfaz con al menos un método, en su propio paquete. Crear una clase en un paquete separado. Agregue una clase interna protegida que implemente la interfaz. En un tercer paquete, herede de su clase y, dentro de un método, devuelva un objeto de la clase interna protegida, enviando un mensaje a la interfaz durante la devolución.

Este es mi código:

IOne.java

interfaz

package intfpack;
public interface IOne{
        void    f();
}
Cone.java

Clase con clase interna protegida que implementa la interfaz.

package classpack;
import intfpack.*;
public class COne{
        protected class Inner implements IOne{
                public void f(){System.out.println("Inner class of COne");}
        } 
}
CTwo.java

Heredando de la clase con clase interna protegida.

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();
        }
}

Copmiler dice a continuación:

javac CTwo.java
CTwo.java:9: Inner() has protected access in classpack.COne.Inner
                IOne io = new Inner(); 
                          ^
1 error

Pero el libro dice que puedo acceder a clases internas protegidas en clases derivadas. Donde esta el error

Respuestas a la pregunta(4)

Su respuesta a la pregunta