黑马程序员技术交流社区

标题: 对象调用和类继承问题 [打印本页]

作者: 吴文龙    时间: 2013-7-19 00:31
标题: 对象调用和类继承问题
/*假如我们开发一个程序需要对公司的员工建模,员工的属性包括:姓名 工号 工资 经理也是员工,除了含有员工的属性外,
还有一个奖金的属性,请使用继承的思想设计出员工类和经理类,要求类中提供必要的方法进行属性的访问
员工类: name id pay
经理类: 继承了员工类中的name id pay ,另外还有bonus属性
**/
abstract class employe
{
  private String name;
  private String id;
  private double pay;
   employe(String name,String id,int pay)
  {
    this.name=name;
this.id=id;
this.pay=pay;
  }
   public abstract void work();
}
class manager extends employe
{
public  void work()
{
  System.out.println("manager work");
}
private  double bonus;
manager(String name,String id,int pay,int bonus)
{
  super(name,id,pay);
  this.bonus=bonus;
}

}
class pro extends employe
{
public  void work()
{
  System.out.println("pro work");
}
pro(String name,String id,int  pay )
{
  super(name,id,pay);
}

}
class  employee
{
public static void main(String[] args)
{
  manager  s = new manager("longshao"," 印后"+032,456,12);
  System.out.println(s);
  pro wu=new pro("wenlong","印后"+032,2500);
        System.out.println(wu);

}
}
这个程序运行结果是/*假如我们开发一个程序需要对公司的员工建模,员工的属性包括:姓名 工号 工资 经理也是员工,除了含有员工的属性外,
还有一个奖金的属性,请使用继承的思想设计出员工类和经理类,要求类中提供必要的方法进行属性的访问
员工类: name id pay
经理类: 继承了员工类中的name id pay ,另外还有bonus属性
**/
abstract class employe
{
  private String name;
  private String id;
  private double pay;
   employe(String name,String id,int pay)
  {
    this.name=name;
this.id=id;
this.pay=pay;
  }
   public abstract void work();
}
class manager extends employe
{
public  void work()
{
  System.out.println("manager work");
}
private  double bonus;
manager(String name,String id,int pay,int bonus)
{
  super(name,id,pay);
  this.bonus=bonus;
}

}
class pro extends employe
{
public  void work()
{
  System.out.println("pro work");
}
pro(String name,String id,int  pay )
{
  super(name,id,pay);
}

}
class  employee
{
public static void main(String[] args)
{
  manager  s = new manager("longshao"," 印后"+032,456,12);
  System.out.println(s);
  pro wu=new pro("wenlong","印后"+032,2500);
        System.out.println(wu);

}
}
/*假如我们开发一个程序需要对公司的员工建模,员工的属性包括:姓名 工号 工资 经理也是员工,除了含有员工的属性外,
还有一个奖金的属性,请使用继承的思想设计出员工类和经理类,要求类中提供必要的方法进行属性的访问
员工类: name id pay
经理类: 继承了员工类中的name id pay ,另外还有bonus属性
**/
abstract class employe
{
  private String name;
  private String id;
  private double pay;
   employe(String name,String id,int pay)
  {
    this.name=name;
this.id=id;
this.pay=pay;
  }
   public abstract void work();
}
class manager extends employe
{
public  void work()
{
  System.out.println("manager work");
}
private  double bonus;
manager(String name,String id,int pay,int bonus)
{
  super(name,id,pay);
  this.bonus=bonus;
}

}
class pro extends employe
{
public  void work()
{
  System.out.println("pro work");
}
pro(String name,String id,int  pay )
{
  super(name,id,pay);
}

}
class  employee
{
public static void main(String[] args)
{
  manager  s = new manager("longshao"," 印后"+032,456,12);
  System.out.println(s);
  pro wu=new pro("wenlong","印后"+032,2500);
        System.out.println(wu);

}
}
/*假如我们开发一个程序需要对公司的员工建模,员工的属性包括:姓名 工号 工资 经理也是员工,除了含有员工的属性外,
还有一个奖金的属性,请使用继承的思想设计出员工类和经理类,要求类中提供必要的方法进行属性的访问
员工类: name id pay
经理类: 继承了员工类中的name id pay ,另外还有bonus属性
**/
abstract class employe
{
  private String name;
  private String id;
  private double pay;
   employe(String name,String id,int pay)
  {
    this.name=name;
this.id=id;
this.pay=pay;
  }
   public abstract void work();
}
class manager extends employe
{
public  void work()
{
  System.out.println("manager work");
}
private  double bonus;
manager(String name,String id,int pay,int bonus)
{
  super(name,id,pay);
  this.bonus=bonus;
}

}
class pro extends employe
{
public  void work()
{
  System.out.println("pro work");
}
pro(String name,String id,int  pay )
{
  super(name,id,pay);
}

}
class  employee
{
public static void main(String[] args)
{
  manager  s = new manager("longshao"," 印后"+032,456,12);
  System.out.println(s);
  pro wu=new pro("wenlong","印后"+032,2500);
        System.out.println(wu);

}
}
/*假如我们开发一个程序需要对公司的员工建模,员工的属性包括:姓名 工号 工资 经理也是员工,除了含有员工的属性外,
还有一个奖金的属性,请使用继承的思想设计出员工类和经理类,要求类中提供必要的方法进行属性的访问
员工类: name id pay
经理类: 继承了员工类中的name id pay ,另外还有bonus属性
**/
abstract class employe
{
  private String name;
  private String id;
  private double pay;
   employe(String name,String id,int pay)
  {
    this.name=name;
this.id=id;
this.pay=pay;
  }
   public abstract void work();
}
class manager extends employe
{
public  void work()
{
  System.out.println("manager work");
}
private  double bonus;
manager(String name,String id,int pay,int bonus)
{
  super(name,id,pay);
  this.bonus=bonus;
}

}
class pro extends employe
{
public  void work()
{
  System.out.println("pro work");
}
pro(String name,String id,int  pay )
{
  super(name,id,pay);
}

}
class  employee
{
public static void main(String[] args)
{
  manager  s = new manager("longshao"," 印后"+032,456,12);
  System.out.println(s);
  pro wu=new pro("wenlong","印后"+032,2500);
        System.out.println(wu);

}
}
这个程序运行结果为什么会错成这样啊

作者: 吴文龙    时间: 2013-7-19 00:33
复制的多了,只有一个
作者: 下雨天    时间: 2013-7-19 00:52
本帖最后由 下雨天 于 2013-7-19 01:11 编辑

你的类写的太麻烦了  没有必要写那个抽象类   让员工类作为父类就可以了   因为员工的所有属性与方法  经理都有    在类中还需要覆写toSting方法     而且需求中的访问属性的方法你也没写   这是我把你的代码改写的,访问属性你自己写吧:
class employe
{
     String name;
     String id;
     double pay;
     employe(String name,String id,int pay)
     {
       this.name=name;
       this.id=id;
       this.pay=pay;
     }
     public  void work()
    {
      System.out.println("pro work");
   }
   public String toString()
   {
         return name+","+id+","+pay;
   }
}
class manager extends employe
{
   public String toString()
   {
         return name+","+id+","+pay+","+bonus;
   }
   public  void work()
   {
      System.out.println("manager work");
   }
   private  double bonus;
   manager(String name,String id,int pay,int bonus)
   {
     super(name,id,pay);
     this.bonus=bonus;
   }
}

class  employee
{
  public static void main(String[] args)
{
     manager  s = new manager("longshao"," 印后"+032,456,12);
     System.out.println(s);
    pro wu=new pro("wenlong","印后"+032,2500);
         System.out.println(wu);
  }
}

作者: 吴文龙    时间: 2013-7-19 23:14
下雨天 发表于 2013-7-19 00:52
你的类写的太麻烦了  没有必要写那个抽象类   让员工类作为父类就可以了   因为员工的所有属性与方法  经理 ...

public String toString()
   {
         return name+","+id+","+pay;
   }
这个方法还没学到哦,有更简单的方法吗?




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2