public SuperClass{
protected int a1;
}
// Consider that two classes are in different package.
public SubClass extends SuperClass{
void m1(){
SuperClass sp = new SuperClass();
sp.a1 = 1; // Error: Subclass.a1 is not visible
}
}
I think that protected member a1 is visible to SubClass. In addition, field a1 belongs to SuperClass. So why it's not visible?