Возможно, вы немного смущены.
Вот мое быстрое демо и показывает косвенный подкласс, обращающийся к защищенному атрибуту:
// A.java
package a;
public class A {
protected int a;
}
// B.java
package b; //<-- intermediate subclass
import a.A;
public class B extends A {
}
// C.java
package c; //<-- different package
import b.B;
public class C extends B { // <-- C is an indirect sub class of A
void testIt(){
a++;
System.out.println( this.a );//<-- Inherited from class A
}
public static void main( String [] args ) {
C c = new C();
c.testIt();
}
}
печатает 1
Как видите, атрибут a
доступен из подкласса C
.
Если вы покажете нам код, который вы пробуете, мы сможем выяснить, в чем ваше замешательство.