当前位置: 技术问答>java相关
关于interface使用的疑问,盼各位回答!
来源: 互联网 发布时间:2015-04-06
本文导语: public class Man { private String name; private static int count; public Man(String name) { this.name=name; ++count; } public String getName() {return name;} public static int getCount() {return count;} } interface QueueInterface { ...
public class Man
{
private String name;
private static int count;
public Man(String name)
{
this.name=name;
++count;
}
public String getName() {return name;}
public static int getCount() {return count;}
}
interface QueueInterface
{ //这是队列的使用者接口
public boolean isEmpty(); //队列(队伍)是否空白
public void addTail(String name);//将名为name的人从尾端加入
public Man removeHead(); //头端移出Man这个人
public void show(); //显示队列所有Man的姓名
}
class QueueClass implements QueueInterface
{
private int head;
private int tail;
private Man queue[];
public QueueClass()
{
head=tail=0;
queue=new Man[4];
}
public boolean isEmpty()
{
return (head==tail)?true:false;
}
public void addTail(String name)
{
if ((tail+1)%queue.length==head)
System.out.println("队列满了"+name+"无法加入");
else
queue[++tail % queue.length]=new Man(name);
}
public Man removeHead()
{
if (isEmpty())
{
System.out.println("队列空白");
return new Man("");
}
head=(head+1)% queue.length;
return queue[head];
}
public void show()
{
int p=head;
System.out.println("显示队列");
while(p!=tail)
{
p=(p+1)%queue.length;
System.out.println(queue[p].getName()+"");
}
System.out.println();
}
}
public class MyQueue
{
private static QueueInterface q;
public static void main(String args[])
{
q=new QueueClass();
q.addTail("张三");
q.addTail("李四");
q.addTail("王五");
while(!q.isEmpty())
{
q.show();
System.out.println("移出:"+q.removeHead().getName());
}
}
以上是四个文件,是一个使用接口的例子,我的疑问是:
q定义为接口,我要使用该接口中声明的方法,我还得知道实现这个接口的类,如上
(q=new QueueClass(); ),那我还不如直接把q定义为那个类.这样的话,接口的意义
何在??
书上说接口使数据抽象化了,只需要知道类中有哪些动作,不需要知道这些动作使如何操作的,但是以上这个例子说明要要接口,我必须知道实现这个接口的类,这是不是有些矛盾啊??
可能是我的理解有问题,欢迎各位大虾指点迷津!!!!最好能举个例子说明一下接口的真正用处!!!谢了!
{
private String name;
private static int count;
public Man(String name)
{
this.name=name;
++count;
}
public String getName() {return name;}
public static int getCount() {return count;}
}
interface QueueInterface
{ //这是队列的使用者接口
public boolean isEmpty(); //队列(队伍)是否空白
public void addTail(String name);//将名为name的人从尾端加入
public Man removeHead(); //头端移出Man这个人
public void show(); //显示队列所有Man的姓名
}
class QueueClass implements QueueInterface
{
private int head;
private int tail;
private Man queue[];
public QueueClass()
{
head=tail=0;
queue=new Man[4];
}
public boolean isEmpty()
{
return (head==tail)?true:false;
}
public void addTail(String name)
{
if ((tail+1)%queue.length==head)
System.out.println("队列满了"+name+"无法加入");
else
queue[++tail % queue.length]=new Man(name);
}
public Man removeHead()
{
if (isEmpty())
{
System.out.println("队列空白");
return new Man("");
}
head=(head+1)% queue.length;
return queue[head];
}
public void show()
{
int p=head;
System.out.println("显示队列");
while(p!=tail)
{
p=(p+1)%queue.length;
System.out.println(queue[p].getName()+"");
}
System.out.println();
}
}
public class MyQueue
{
private static QueueInterface q;
public static void main(String args[])
{
q=new QueueClass();
q.addTail("张三");
q.addTail("李四");
q.addTail("王五");
while(!q.isEmpty())
{
q.show();
System.out.println("移出:"+q.removeHead().getName());
}
}
以上是四个文件,是一个使用接口的例子,我的疑问是:
q定义为接口,我要使用该接口中声明的方法,我还得知道实现这个接口的类,如上
(q=new QueueClass(); ),那我还不如直接把q定义为那个类.这样的话,接口的意义
何在??
书上说接口使数据抽象化了,只需要知道类中有哪些动作,不需要知道这些动作使如何操作的,但是以上这个例子说明要要接口,我必须知道实现这个接口的类,这是不是有些矛盾啊??
可能是我的理解有问题,欢迎各位大虾指点迷津!!!!最好能举个例子说明一下接口的真正用处!!!谢了!
|
描述希望做什么,和具体怎么做的细节问题一定要分开,这样才能保证系统灵活性。
况且java的类没有多重继承,必须要靠interface才能实现。
况且java的类没有多重继承,必须要靠interface才能实现。
|
http://www.csdn.net/expert/topic/515/515188.xml