你extends它了,那么a里头的protected和public的方法和属性都会一起继承下来的吗.

解决方案 »

  1.   

    aa访问的print()是它自己的method,管他是protected还是public呢,都可以。
      

  2.   

    我把你的代码看了一下:你可以这样作:
    //class a 中的代码
    package a;
    public class a{
    public a(){
    System.out.println("我是a!");
    }
    protected static void print(){
    System.out.println("我是a中的print(!");
    }
    public static void main(String[] arge){
    a l_a = new a();
    print();
    }
    }//class aa 中的代码package aa;import a.*;  //引入a包!class aa extends a {
    public static void main(String[] arge){
    a l_a = new a(); 
    print(); 
    }

     也就是把a包中的a类的构造函数protected a(){}改成public a(){}.
    因为你在aa类中new a()会调用a类的构造函数,而他又是protected的,所以这样。
      

  3.   

    protected限制了你的访问权限,你不能生成protected构造函数的实例子,必须在同一个包内。
    由于print是static的,所以可以直接在子类中使用。