目的:把超类Employee和子类Manager、Director打包在pkg.emp目录下
     把EmployeeTEst类打包在pkg.test目录下,并导入pkg.emp目录下的所有类
请问下面的代码哪里出错了我是新手,请达人指点(最好详细些)^_^
//******************************************************************************
//以下内容保存为Employee.java
package pkg.emp;
public class Employee{
String name; //姓名
double basic; //薪资
String address; //地址
Employee(){}
Employee(String str,double salary,String add){
name=str;
basic=salary;
address=add;
}
void show(){}
}
class Manager extends Employee{
String department; //部门
Manager(){}
Manager(String str,double sal,String add,String dept){
super(str,sal,add);
department=dept;
}
void show(){}
}
class Director extends Employee{
double transportAllowance; //交通津贴
Director(){}
Director(String str,double sal,String add,double allowance){
super(str,sal,add);
transportAllowance=allowance;
}
void show(){}
}
//***************************************************************************
//以下内容保存为EmployeeTest.java
package pkg.test;import pkg.emp.Manager;
import pkg.emp.Director;
import pkg.emp.Employee;public class EmployeeTest{
EmployeeTest(){
}
public static void main(String[] args){
Manager mgeObj=new Manager("Tom",5500.6,"Beijing","人事部");
System.out.println("经理详细信息");
System.out.println("===============");
mgeObj.show();
Director dirObj=new Director("Jerry",50000.00,"NewYork",8000);
System.out.println("\n经理详细信息");
System.out.println("===============");
dirObj.show();
}
}

解决方案 »

  1.   

    为了节省篇幅 show()方法中的内容被省掉了.
      

  2.   

    我还没有测试过,不过我初步认为你的错误应该是EmployeeTest类的错误。因为你的Manager和Diretor类都是被打包进pkg.emp的,但是却没有声明为public,默认是包访问权限的,也就是说你这两个类只能是同一个包中的类才能访问。
    而你的EmployeeTest类是pkg.test包的,不跟M和D同一个包,所以当你访问这两个类时就错误了。你应该分别把这两个类打包到emp,并且设为public