黑马程序员技术交流社区
标题:
一个关于内部类继承的问题
[打印本页]
作者:
王程
时间:
2012-8-7 12:34
标题:
一个关于内部类继承的问题
有一个KTV,每一包厢里配备一个服务员,服务员有服务功能,有姓名和编号属性,经理也属于服务员的一种,经理还多了一种发工资的功能。程序写出来有点问题,大家帮忙看看。
class Room
{
private String id;
private int NumberOfChair;
private int NumberOfTV;
class Waiter
{
private String name;
private int WaiterId;
Waiter(String name,int WaiterId)
{
this.name=name;
this.WaiterId=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();
}
}
复制代码
作者:
尤洋
时间:
2012-8-7 13:13
只需要把第6行 内部类改为静态就行了,否则25行的super(name,WaiterId);没有办法调用父类。
外部类要访问内部类,必须建立内部类对象。不建立对象就只能改静态 用类名调用
作者:
戎石锁
时间:
2012-8-7 15:04
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();
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2