A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 沐阳6011 于 2014-6-4 11:22 编辑
  1. abstract class Employee
  2. {
  3.         private String name;
  4.         private String id;
  5.         private double pay;

  6.         Employee(String name,String id,double pay)
  7.         {
  8.                 this.setName(name);
  9.                 this.setId(id);
  10.                 this.setpay(pay);
  11.         }
  12.         public void setName(String name)  //设置姓名
  13.         {
  14.                 this.name=name;
  15.         }
  16.         public String getName()                   // 获得姓名
  17.         {
  18.                 return name;
  19.         }
  20.         public void setId(String id)          //设置编号
  21.         {
  22.                 this.id=id;
  23.         }
  24.         public String getId()                   //获得编号
  25.         {
  26.                 return id;
  27.         }
  28.         public void setPay(double pay)           //获得编号
  29.         {
  30.                 this.pay=pay;
  31.         }
  32.         public double getPay()                   //获得工资
  33.         {
  34.                 return pay;
  35.         }
  36.       public abstract void work();
  37.         public void display()// 显示雇员的信息;
  38.         {
  39.                 System.out.println(name+","+id+","+pay);

  40.         }
  41. }

  42. class Pro extends Employee
  43. {
  44.         Pro(String name,String id,double pay)
  45.         {
  46.                 super(name,id,pay);
  47.         }

  48.         public void work()
  49.         {
  50.                 System.out.println("Pro working");
  51.         }

  52. }
  53. class Manager extends Employee
  54. {
  55.         private double bonus;
  56.         Manager(String name,String id,double pay,double bonus)
  57.         {
  58.                 super(name,id,pay);
  59.                 this.bonus= bonus;

  60.         }

  61.         public void work()
  62.         {
  63.                 System.out.println("Manager working");
  64.         }
  65.         public void display()
  66.         {
  67.                 System.out.println(super.getName()+","+super.getId()+","+super.getPay()+","+this.bonus);
  68.                 /*System.out.println(super.display()+","+this.bonus);*/
  69.         }
  70.         
  71. }

  72. class AbstractTest2
  73. {
  74.         public static void main(String[] args)
  75.         {
  76.                 Manager mJoker = new Manager("Mjokers","M001",8000,10000);
  77.                 mJoker.work();
  78.                 mJoker.display();
  79.         }

  80. }
复制代码

这个代码是正确的,但是注释中的内容替换了它上一条输出语句就会报错。super可以调用父类中的get函数,为什么不能调用display函数。错误提示是:super.display(),此处不允许使用空类型。这是怎么回事,两个函数都是空参的啊?
求懂的哥们们指教一下。:):)

3 个回复

倒序浏览
因为display()函数没有返回值,不能放在输出语句中执行,把它放到输出语句外面去就可以调用了,能够在输出中调用get方法是因为get方法有返回值

点评

厉害!!!  发表于 2014-6-4 13:42
回复 使用道具 举报 1 0
wangmin 发表于 2014-6-4 11:30
因为display()函数没有返回值,不能放在输出语句中执行,把它放到输出语句外面去就可以调用了,能够在输出中 ...

果然是这么回事儿,输出语句只能输出有返回值的函数。这下我就全明白了,谢谢了。:victory:
回复 使用道具 举报 1 0
您需要登录后才可以回帖 登录 | 加入黑马