class Employee //所有员工总的父类
{
private String name ;//员工的姓名
private int yue ; //员工的生日

Employee( String name , int yue ) //构造方法
{
this.name = name ;
this.yue = yue ;
}
void setName( String name )
{
this.name = name ;
}
void setYue (int yue)
{
this.yue = yue ;
}
String getName()
{
return name ;
}
int getYue()
{
return yue ;
}
void getSalary(int month)  //方法:getSalary(int month) 
{
if ( yue == month )
{
System.out.println("生日快乐,公司将额外奖励你100");
}
}
void gongzi ()
{
System.out.println("父类的成员方法");
}
}
//拿固定工资的员工
class SalariedEmployee extends Employee
{
private double yuexin ; //月薪

SalariedEmployee ( double yuexin ) //构造方法
{
this.yuexin = yuexin ;
}
void setYuexin( double yuexin )
{
this.yuexin = yuexin ;
}
double getYuexin()
{
return (double)yuexin;
}
void gongzi ()
{
System.out.println("拿固定工资得是" + yuexin );
}

}//按小时拿工资的员工
class HourlyEmployee extends Employee
{
private double gongzi ; //每小时的工资、
private int xiaoshi ; //每月工作的小时数

HourlyEmployee ( double gongzi , int xiaoshi )//构造方法
{
this.gongzi = gongzi ;
this.xiaoshi = xiaoshi ;
}

void setGongzi ( double gongzi )
{
this.gongzi = gongzi ;
}
void setXiaoshi ( int xiaoshi )
{
this.xiaoshi = xiaoshi ;
}

double getGongzi()
{
return (double)gongzi ;
}
int getXiaoshi()
{
return xiaoshi ;
}
//每月工作超出160小时的部分按照1.5倍工资发放
void gongzi () //工作时间
{
if ( xiaoshi > 160 )
{
gongzi =(float) (gongzi * xiaoshi * 1.5) ;  
System.out.println("超出时间得工资是 " + gongzi );
}
else 
{
 gongzi = gongzi * xiaoshi ;
 System.out.println("没有超出时间得工资是" + gongzi );
}
}
}//销售人员,
class SalesEmployee extends Employee
{
private double xiaoshou ; //月销售额
private double ticheng ;  // 提成率

SalesEmployee ( double xiaoshou , double ticheng ) //构造方法
{
this.xiaoshou = xiaoshou ;
this.ticheng = ticheng ;
}

void setXiaoshou( double xiaoshou )
{
this.xiaoshou = xiaoshou ;
}
void setTicheng( double ticheng )
{
this.ticheng = ticheng ;
}

double getXiaoshou()
{
return (double)xiaoshou ;
}
double getTicheng()
{
return (double)ticheng ;
}
//工资由月销售额和提成率决定
void  gongzi()
{
System.out.println("销售得工资是" +( xiaoshou * ticheng )) ;
}

}
//有固定底薪的销售人员
class BasedPlusSalesEmployee extends SalesEmployee
{
private double dixin ;
private double ticheng;

BasedPlusSalesEmployee ( double dixin )
{
this.dixin = dixin ;
}
double setDixin( double dixin )
{
this.dixin = dixin ;
}
double getDixin()
{
return (float)dixin ;
}

void gongzi ()
{
System.out.println("拿底薪得销售工资是 " + (dixin * ticheng)) ;
}
}

解决方案 »

  1.   

    他编译的时候他说Employee.java:64: 找不到符号
    符号: 构造函数 Employee()
    位置: 类 Employee
            {
            ^
    Employee.java:89: 找不到符号
    符号: 构造函数 Employee()
    位置: 类 Employee
            {
            ^
    Employee.java:134: 找不到符号
    符号: 构造函数 Employee()
    位置: 类 Employee
            {
            ^
    Employee.java:170: 找不到符号
    符号: 构造函数 SalesEmployee()
    位置: 类 SalesEmployee
            {
            ^
    4 错误是什么原因啊 我那个大括号都该了的啊 不怎么就错了呢啊
      

  2.   

    恩 我给构造方法public 也一样是那个错误啊
      

  3.   

    本来列,当你创建一个类的时候 如果不给他写构造函数时,系统会默认帮他构建一个空的构造函数。所以当有子类继承这个类的时候,就会继承他的这个空的构造的函数,你现在自己写了一个有参的构造函数,系统就不会帮他构建空构造函数了,所以你必须加上一个空的构造函数。这也是一个习惯。。反应到代码中:
    在Employee 类,增加如下
     Employee(){} 就可以了
      

  4.   

    只有一个问题问楼主,你没有public类和main函数怎么运行???
    还是你给的只是部分代码
      

  5.   

    肯定是部分代码了 闷闷 main方法 那里没错 所以就没贴出来闷闷
      

  6.   

    子类的构造方法里也要有父类的name yue 吧 在子类的构造方法里 加super.(name yue)应该可以的吧