一个class implements 一个interface
然后再class里面定义那个 interface的方法。还不如直接在类里面定义一个方法,岂不实现同样地功能,还省得在class 的后面画蛇添足地加一个 implements
对吧?

解决方案 »

  1.   

    好好体会interface ,你如果有多个类都有相同的方法 ,而方法的实现都不一样 ,那么你定义一个interface就有用了 public interface IEat{
       public void eat() ;
    }public class Person implements IEat{    public void eat{
          //do Person eat ;
        }
    }
    public class Animal implements IEat{    public void eat{
          //do Animal eat ;
        }
    }public class Test{   private IEat eat ;   public Test(IEat eat){   //这里就不要具体到 是使用Person 还是 Animal了
          this.eat = eat  ;
       }}我也不知道我举得例子对不对 ,反正我是这么理解的 
      

  2.   

    感觉一般来说都用不上interface
      

  3.   

    举个例子,假设你要做个系统,同时需要支持db2,oracle,mysql数据库,里面会用到一些与特定数据库相关的语句,如取前3条记录,你要怎么做呢?这时候就要用到接口或抽象类了,接口和抽象类本质上没有太大区别,目的都是为了多态这时候抽象出一个数据库访问接口或抽象类,然后为db2,mysql,oracle各定义一个自己的实现类,但在系统中使用的是数据库访问接口,配上静态工厂或抽象工厂,这就与实际实现解耦了
      

  4.   

    在java中类是不能多继承的,接口就是来弥补这个的,接口可以多继承
      

  5.   

    接口很重要的,重要到一定境界了,比继承用得多多了,做哪个项目里面没用到接口丫,接口可以用来分层,MVC项目都有service接口,dao接口,以前学的时候也没太大感觉,现在发现接口真是个好东西丫,还有些框架也要用到接口,比如说spring,总之等lz真正做项目了就知道离不开接口
      

  6.   

    接口很有用,如果没用Java就不会在语言级别支持他了。
      

  7.   

    java里面没有多继承,就出现了interface 她实现了多继承的目的。你把方法写在class里面,同一个方法可能有几种不同的实现,请问这时你怎么调用呢?好好看看书吧,
      

  8.   

    LZ原来是学C的吧,理解面向对象吧
      

  9.   

    Interface乃是面向对象的精髓啊~~多态少不了它的。
    等你做了稍微大一点的项目之后就会明白它是个神奇了。
      

  10.   

    1
    <bean id="studentService" class="com.school.mis.biz.service.StudentPojoService" />
    2
    <bean id="studentService" class="com.school.mis.biz.service.StudentXmlFacadeService" />比如 public class StudentPojoService implements StudentService
         public class StudentXmlFacadeService implements StudentService比如方法升级,我只要将1的配置更改为2的配置,就可以实现功能替换
    因为
    StudentService statusService = (StudentService)context.getBean("studentService");
    如果我用
    StudentPojoService statusService = (StudentPojoService)context.getBean("studentService");那么我需要修改每个引用StudentPojoService的地方,而且因为没有个规范,StudentPojoService和StudentXmlFAcadeService中的方法有可能有差别,还需要针对修改的地方去修改
    这样就增大了每层之间的耦合性。
    为了解耦,用接口是一个不错的方法
      

  11.   

    lz这话搞得群情激愤了,接口是java的精髓丫
      

  12.   

    要是这样的话。oracle干嘛要用interface呢,java的多态也跟interface有关。 接口对方法进行了抽象。很有必要。
      

  13.   

    其实lz也没说错啥。
    Java是啥? 是“光速”这种从宇宙诞生就存在的不可更改的存在么? 还不是一堆程序员整出来的!?
    java就是给人用的!java的interface就是给用java的人用的!
    lz说interface没用,说明他/她不需要。 不需要的东西,对lz来说,就是没用处的东西。
    假设我是一个秘书,需要处理文件,今天公司培训java interface,你说对我有用么?需要去么?
      

  14.   

    举例吧
    一个项目下,有3种人,其中教师、领导可以登录系统,学生不可以。教师是A类。学生是B类。领导是C类。他们共同继承D类。有一个方法是根据ID,去查询人,为了适应各种情况,所以返回了一个D类型。那你现在要怎么判断返回的D是 什么呢?当然了,你说可以写一个抽象方法,子类里面重写一下,貌似这样麻烦了吧。一个interface搞定呀。而且,返回的D类本身就是A或者B或者C,你多写一个方法去判断,不觉得是一点啰嗦的代码吗?
      

  15.   

    可以开始思考是个好的开始。楼主接下来应该研究为什么java推崇面向接口和抽象编程了,这是面向对象编程的精髓所在