黑马程序员技术交流社区

标题: 关于抽象类问题 [打印本页]

作者: 施祖喜    时间: 2013-4-29 23:07
标题: 关于抽象类问题
本帖最后由 施祖喜 于 2013-4-30 18:17 编辑

求解释,找了好久没找出这两个错误的原因     代码在一楼

QQ截图20130429230607.png (12.32 KB, 下载次数: 4)

QQ截图20130429230607.png

作者: 施祖喜    时间: 2013-4-29 23:10
  1. class AbstractEmployee{
  2.         public static void main(String[] args) {
  3.                 Programmer P=new Programmer("张三",8888888,20000);
  4.                 P.work();
  5.                 P.speak();
  6.                 Manager M =new Manager("李四",888888,333333333,50000);
  7.                 M.work();
  8.                 M.speak();
  9.         }
  10. }
  11. /*雇员(Employee)示例:
  12. 需求:公司中程序员(programmer)有姓名(name),工号(id),薪水(pay),工作内容(work)。
  13. 项目经理(Manager)除了有姓名(name),工号(id),薪水(pay),还有奖金(bonus),工作内容(work)。
  14. 对给出需求进行数据建模。*/
  15. abstract class Employee{
  16.         String name;
  17.         int id;
  18.         double pay;
  19.         public abstract void work();
  20.         Employee(){}
  21.         Employee(String name,int id,double pay){
  22.                 this.name = name;
  23.                 this.id = id;
  24.                 this.pay = pay;
  25.         }
  26.         public void speak(){
  27.                 System.out.println(name+"  "+id+"号"+pay+"元");
  28.         }
  29. }
  30. class Programmer extends Employee{
  31.         public void work(){
  32.                 System.out.println("按照上级要求敲出代码");
  33.         }
  34.         Programmer(){}
  35.         Programmer(String name,int id,double pay){
  36.                 super(name,id,pay);
  37.         }
  38. }
  39. class Manager{
  40.         double bonus;
  41.         public void work(){
  42.                 System.out.println("分析需求,给程序员下达任务");
  43.         }
  44.         Manager(){}
  45.         Manager(String name,int id,double pay,double bonus){
  46.                 super(name,id,pay);
  47.                 this.bonus=bonus;
  48.         }

  49. }
复制代码

作者: 刘凯    时间: 2013-4-29 23:22
贴代码 只看这个不知道在干啥
作者: 施祖喜    时间: 2013-4-29 23:24
刘凯 发表于 2013-4-29 23:22
贴代码 只看这个不知道在干啥

额   说了  代码在沙发啊   我发的时候贴不上就回复在沙发了
作者: 刘凯    时间: 2013-4-29 23:30
施祖喜 发表于 2013-4-29 23:24
额   说了  代码在沙发啊   我发的时候贴不上就回复在沙发了

因为你的Manager没有继承Employee  
忘了吧是  没有父类 哪来的super(name,id,pay);
楼主需细心呀
作者: 邹晓慧    时间: 2013-4-29 23:32
  1. class Manage extends Employeer{
  2.         double bonus;
  3.         public void work(){
  4.                 System.out.println("分析需求,给程序员下达任务");
  5.         }
  6.         Manager(){}
  7.         Manager(String name,int id,double pay,double bonus){
  8.                 super(name,id,pay);
  9.                 this.bonus=bonus;
  10.         }
复制代码
没有继承Employee这个父类···你是木有办法调用父类的构造函数和方法的·····
作者: 曾德强    时间: 2013-4-29 23:34
你的Manager类没有继承抽象类呀!肯定会出现错误了
作者: xiewen    时间: 2013-4-30 16:53
就是Manager类没有继承Employee类,所以没有父类的构造方法super(name,id,pay);
作者: 施祖喜    时间: 2013-4-30 18:15
刘凯 发表于 2013-4-29 23:30
因为你的Manager没有继承Employee  
忘了吧是  没有父类 哪来的super(name,id,pay);
楼主需细心呀 ...

额   是粗心了 这个毛病还是犯了 呵呵
作者: 施祖喜    时间: 2013-4-30 18:16
邹晓慧 发表于 2013-4-29 23:32
没有继承Employee这个父类···你是木有办法调用父类的构造函数和方法的····· ...

呵呵  同学谢谢了




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