当前位置: 代码迷 >> J2SE >> 一个没有任何内容的接口应该怎样理解?解决思路
  详细解决方案

一个没有任何内容的接口应该怎样理解?解决思路

热度:65   发布时间:2016-04-24 02:07:05.0
一个没有任何内容的接口应该怎样理解?
通常一个接口都会有一个或几个抽象方法,实现接口的类再去实现覆写(实现)这些 方法.

怎样理解一个没有任何内容的接口呢? 

象下面的程序,接口 Fish 无任何属性和方法. 
Java code
/* 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


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



------解决方案--------------------
恩,认同这种观点
探讨

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

------解决方案--------------------
很多 标记 接口,如java.io.Serializable
------解决方案--------------------
这属于标识接口啊,指定接收参数的类型,他自身什么都不做。
  相关解决方案