我把你的代码看了一下:你可以这样作: //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的,所以这样。
//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的,所以这样。
由于print是static的,所以可以直接在子类中使用。