通常一个接口都会有一个或几个抽象方法,实现接口的类再去实现覆写(实现)这些 方法.怎样理解一个没有任何内容的接口呢? 象下面的程序,接口 Fish 无任何属性和方法. 
/* filename: InnerClassUpperCase2.java
 */package cs.ch7;class Cat
{ public void eat(Fish fish)
{
System.out.println("猫正在吃"+fish);
}}
interface Fish
{
}
class PetStore
{ private class Sardine implements Fish
{
private String name; public Sardine()
{
name="沙丁鱼";
} public String toString()
{
return name;
}
} private class Herring implements Fish
{
private String name; public Herring()
{
name="青鱼";
} public String toString()
{
return name;
} } private class Tuna implements Fish
{
private String name; public Tuna()
{
name="金枪鱼";
} public String toString()
{
return name;
}
} public Fish provideSardine()
{
return new Sardine();
} public Fish provideHerring()
{
return new Herring();
} public Fish provideTuna()
{
return new Tuna();
}
} //====================================== class  InnerClassUpperCase2 测试类,含main()
//====
public class InnerClassUpperCase2
{ public static void main(String[] args)
{
Cat cat=new Cat();   //生成Cat类的对象。
PetStore petStore=new PetStore();    //生成Petstore对象。
cat.eat(petStore.provideSardine());
cat.eat(petStore.provideHerring());
cat.eat(petStore.provideTuna());
}
}
//====================================== end class  InnerClassUpperCase2

解决方案 »

  1.   

    在Cat类里面,你可以对fish接口进行操作,而不用知道fish是实例化了那个类的,多态的应用
    public void eat(Fish fish){
        System.out.println("猫正在吃"+fish);
    }
      

  2.   

    恩,认同这种观点--------------------
    http://www.qinglobo.com/
      

  3.   

    很多 标记 接口,如java.io.Serializable
      

  4.   

    起初我也是这样理解的,但后来听说实现多态的3个条件, 继承,覆写,父类引用指向子类对象. 这里就没有覆写, 似乎不是多态? 
    而且我觉得既然是鱼, 还是应该有些鱼的行为.象上面的程序, 把接口定义成Stone, Book似乎都行,为什么非要定义成Fish呢? 不好理解.
      

  5.   

    有override,toString()方法用的是各自的,
    它们的行为就是toString(),
    fish接口告诉别人,实现fish接口的东西是鱼类的
    就想Serializable接口告诉别人,实现它的是可序列化的
      

  6.   

    有override,toString()方法用的是各自的,
    那也是重写了Object的方法,与接口Fish 也没关系啊?
      

  7.   

    这属于标识接口啊,指定接收参数的类型,他自身什么都不做。 是否为多态的应用,还得慢慢捉摸.我现在这样理解了,"起到一个标签作用."
    这篇文章也让我更易理解. http://blog.csdn.net/senton/article/details/1361152
    谢谢各位!