I have a problem understanding protected members inheritance and visibility.
I know it is visible in the same package and subclasses.
But in the following code it is not visible in a subclass.
A.java
package a; public class A { public static void main(String[] args) { } protected void run() { } } B.java
package b; import a.A; public class B extends A { public static void main(String[] args) { B b = new B(); b.run(); // this works fine } } C.java
package b; import a.A; public class C extends A{ // it will not work also if extends B public static void main(String[] args) { B b = new B(); b.run(); // this is the problem; not visible } } Why b.run() in the last class is invisible?
run()?