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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王程 中级黑马   /  2012-8-7 12:34  /  1295 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

有一个KTV,每一包厢里配备一个服务员,服务员有服务功能,有姓名和编号属性,经理也属于服务员的一种,经理还多了一种发工资的功能。程序写出来有点问题,大家帮忙看看。
  1. class Room
  2. {
  3.    private String id;
  4.    private int NumberOfChair;
  5.    private int NumberOfTV;
  6.    class Waiter
  7.    {
  8.       private String name;
  9.       private int WaiterId;
  10.       Waiter(String name,int WaiterId)
  11.      {
  12.         this.name=name;
  13.        this.WaiterId=WaiterId;
  14.     }
  15.     public void service()
  16.     {
  17.        System.out.println("很高兴为您服务!");
  18.     }
  19.   }
  20. }
  21. class Manager extends Room.Waiter
  22. {
  23.     Manager(String name,int WaiterId)
  24.    {
  25.        super(name,WaiterId);
  26.    }
  27.    public void wages()
  28.    {
  29.        System.out.println("今天发工资啦");
  30.    }
  31. }
  32. class TestDemo
  33. {
  34.     public static void main(String[] args)
  35.     {
  36.          Manager m=new Manager("zhangsan",001);
  37.         m.wages();
  38.     }
  39. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
张_涛 + 1 赞一个!

查看全部评分

2 个回复

倒序浏览
只需要把第6行 内部类改为静态就行了,否则25行的super(name,WaiterId);没有办法调用父类。
外部类要访问内部类,必须建立内部类对象。不建立对象就只能改静态 用类名调用

评分

参与人数 1技术分 +1 收起 理由
张_涛 + 1 赞一个!

查看全部评分

回复 使用道具 举报
class Room
{
   private String id;
   private int NumberOfChair;
   private int NumberOfTV;
  
  static class Waiter//设置成静态类,直接用静态类的调用方法,否者必须建立对象,才能调用
   {
      private String name;
      private int WaiterId;
      Waiter(String name,int WaiterId)
     {
        this.name=name;
       this.WaiterId=WaiterId;
           //System.out.println("姓名:"+name+"  工号:"+WaiterId); 加上这句应该更完善了
    }
    public void service()
    {
       System.out.println("很高兴为您服务!");
    }
  }
}
class Manager extends Room.Waiter
{
    Manager(String name,int WaiterId)
   {
       super(name,WaiterId);
   }
   public void wages()
   {
       System.out.println("今天发工资啦");
   }
}
class TestDemo
{
    public static void main(String[] args)
    {
         Manager m=new Manager("zhangsan",001);
        m.wages();

    }
}

评分

参与人数 1技术分 +1 收起 理由
张_涛 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马