package two里的class B继承package one的class A,则唯一能够访问的成员只有one的public成员。
如果在相同的包里进行继承,则继承获得的包能够访问protected成员。

解决方案 »

  1.   

    可我是创建了B的对象,用A对象的引用b指向它
    在调用b.print()时,不是用的B里的print()方法吗?
    还有一个问题
    在第二个包里这样写也报错
    package two;
    import one.*;
     class B extends A
    {
        
    }   
     
    public class Test
    {
    public static void main(String[] args)
    {
    B b=new B();
    b.print();
    }
    }
    请问为什么啊!
      

  2.   

    to:wuyafeixue(蓝色天空)
    第一个问题:b继承a,但是你声明的是a对象的引用,因此编译器首先会去检查a中的函数是否可以使用,而不管new出来的对象是a还是b,因此会出错。
    第二个问题:你的程序是对的,而且可以在我机子上执行。它打印的是“A.print()”。
    我用的是jbuilder2005。