父类代码:
package pa;
public class Base_eb1947
{
public int k;
public Base_eb1947(int k)
{
this.k=k;
System.out.println("call this f_method");
}
protected void prn()
{
System.out.println("the number of k is:"+k);
}
public static void main(String []args)
{
Base_eb1947 k =new Base_eb1947(8);
k.prn();
}
}
不同包下子类代码:
package pb;
import pa.Base_eb1947;
public class Sub_eb1947 extends Base_eb1947
{
int k;
public Sub_eb1947(int k)
{
super(k);
System.out.println("call this s_method");
}
}
class ExtendsDemo_eb1947
{
public static void main(String args[])
{
Sub_eb1947 test = new Sub_eb1947(7);
test.prn();
}
}
运行结果:
pb/Sub_eb1947.java:19: 错误: prn() 在 Base_eb1947 中是 protected 访问控制
test.prn();
^
1 个错误
但是看教材上,是写着:”protected修饰的成员变量可以被本类、类的子类(可以在不同包下)和同一个包的其他类访问”的呀。