我有一个问题,不太理解受保护成员继承和可见性。
我知道在同一软件包中和子类中可以访问它们。
但是在以下代码中,在子类中无法访问它们。
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
}
}
为什么最后一个类中的b.run()方法是不可见的?
run()
的访问修饰符是什么? - Scott