我有一个叫employee的超类~编译没有问题"Tool completed successfully"
代码如下
import java.util.*;
class Employee
{
public Employee(String n,double s,int year,int month,int day)
{
name=n;
salary=s;
GregorianCalendar calendar = new GregorianCalendar(year,month-1,day);//GregorianCalendar user 0 for january
hireDay = calendar.getTime();
} public String getName()
{
return name;
} public double getSalary()
{
return salary;
} public Date gethireDay()
{
return hireDay;
} public void raiseSalary(double byPercent)
{
double raise = salary * byPercent / 100;
salary += raise;
} private String name;
private double salary;
private Date hireDay;}
现在做一下叫manager的子类~代码如下class Manager extends Employee
{
/**
@param n the employe's name
@param s the salary
@param year the hire year
@param month the hire month
@param day the hire day
*/ public Manager(String n,double s,int year,int month,int day)
{
super(n,s,year,month,day);
bonus = 0;
} public double getSalary();
{
double bassSalary = super.getSalary();
return salary+bassSalary;
} public void setBonus(double b)
{
bonus= b;
} private double bonus;
}
但编译就出错了~显示
G:\java\P145\Manager.java:15: 找不到符号
符号: 构造函数 Employee(java.lang.String,double,int,int,int)
位置: 类 Employee
super(n,s,year,month,day);
^
G:\java\P145\Manager.java:19: 缺少方法主体,或声明抽象
public double getSalary();
              ^
G:\java\P145\Manager.java:22: 返回外部方法
return salary+bassSalary;
^
3 错误Tool completed with exit code 1
怎么会这样的呢???

解决方案 »

  1.   

        public double getSalary();//ERROR!
        {
            double bassSalary = super.getSalary();
            return salary+bassSalary;//EROOR!访问了父类的私有属性。你的意思是bonus+bassSalary  
        }
      

  2.   

    对哦~但是改了还是不行???
    G:\java\P145\Manager.java:15: 找不到符号
    符号: 构造函数 Employee(java.lang.String,double,int,int,int)
    位置: 类 Employee
    super(n,s,year,month,day);
    ^
    G:\java\P145\Manager.java:19: 缺少方法主体,或声明抽象
    public double getSalary();
                  ^
    G:\java\P145\Manager.java:22: 返回外部方法
    return bonus+bassSalary;
    ^
    3 错误
      

  3.   

    ....你是不是两个类没放在一个包里default修饰 要在同一包里才能访问到父类的
      

  4.   

       public double getSalary() ;
        {
            double bassSalary = super.getSalary();
            return salary+bassSalary;
        }这两个地方改了就OK了
      

  5.   

    public double getSalary();
        {
            double bassSalary = super.getSalary();
            return salary+bassSalary;
        }
    第一行最后多了个分号,去掉就好了.
      

  6.   


    刚刚测试了修改后的代码,编译正常G:\java\P145\Manager.java:15: 找不到符号 
    符号: 构造函数 Employee(java.lang.String,double,int,int,int) 
    位置: 类 Employee 看这句应该是Employee类没有和Manager类放在同一个目录下
      

  7.   


    public double getSalary(); //这里多了个分号
        {
            double bassSalary = super.getSalary();
            return salary+bassSalary;  //子类不能直接访问父类的私有成员,楼主的本意是bonus+bassSalary吧,
        }G:\java\P145\Manager.java:15: 找不到符号 
    符号: 构造函数 Employee(java.lang.String,double,int,int,int) 
    位置: 类 Employee 
    楼主把这两个类写在哪了?
      

  8.   

    两个类是放同一个目录~都是在G:\java\P145\下面~没有做成包~刚刚起床就改了下~那个super的错误还是存在??
    G:\java\P145\Manager.java:15: 找不到符号
    符号: 构造函数 Employee(java.lang.String,double,int,int,int)
    位置: 类 Employee
    super(n,s,year,month,day);
    ^
    1 错误Tool completed with exit code 1
      

  9.   


    public double getSalary();//去掉分号
        {
            double bassSalary = super.getSalary();
            return salary+bassSalary;?//salary改为bonus
        }你两个错误都该了吗?
      

  10.   

    楼主是不是没有设置新的环境变量?添加新的CLASSPATH:G:\java\P145\
    保存后打开一个新的编译器窗口,重新编译试试看?
      

  11.   

    哥们 我已经改完跑了你的代码了 没有任何问题Employee package cn.t1;import java.util.*;class Employee {
    public Employee(String n, double s, int year, int month, int day) {
    name = n;
    salary = s;
    GregorianCalendar calendar = new GregorianCalendar(year, month - 1, day);
    hireDay = calendar.getTime();
    } public String getName() {
    return name;
    } public double getSalary() {
    return salary;
    } public Date gethireDay() {
    return hireDay;
    } public void raiseSalary(double byPercent) {
    double raise = salary * byPercent / 100;
    salary += raise;
    } private String name; private double salary; private Date hireDay;
    }
    Manager package cn.t1;class Manager extends Employee { public Manager(String n, double s, int year, int month, int day) {
    super(n, s, year, month, day);
    bonus = 0;
    } public double getSalary() {
    double bassSalary = super.getSalary();
    return bonus + bassSalary;
    } public void setBonus(double b) {
    bonus = b;
    } private double bonus;
    }
    测试:package cn.t1;public class T0 {
    public static void main(String[] args) {
    Manager m = new Manager("a", 100.0, 1, 1, 1);
    System.out.println(m.getSalary());
    }
    }