打个比方,我们的笔记本两侧就有很多的接口,有耳机口,有话筒口,有USB口,还有网线口等等……这些口子都类似于java中的接口,就好像你能从接口里看到方法签名一样,你可以知道笔记本两侧的那些口子分别是干嘛用的。但是具体这些方法是怎样运作的呢?单从java接口看是看不出的,就好像你光看笔记本两侧的口子根本不知道口子内部蕴含的原理!而实现接口,就像你必须在这些口子上插上线才能实现这些口子的功能一般。我想,这样解释应该挺好理解的吧!

             我们再来从代码上看看类和接口的不同:

         

//类:
            public class A {
              private a;
              private b;
              public  void  c(){
                  System.out.println("这是方法体!");  
}
}

     

//接口:
            public interface B {
             public  void  d();    //接口内部只能有方法签名且不能带方法体!
}

          //类的继承:

       

public class A1 extends A{
              ……
}

         //接口的实现:

           

public class B1 implements B{
            public  void  d(){
                          System.out.println("这是B1类对B接口中方法的实现(补充)!");         
           }
}

           这里面,extends是继承的一个关键词,implements是实现接口的关键词。类可以实现接口,接口也可以实现接口,用的则是extends关键词!

            所以,很多时候你写代码,发现有些方法需要的参数是接口类型时,你也可以传入一个实现了那个接口的类的参数,方法也是能够调用的。当然,大多时候就需要你自己新建一个类去实现接口。(详见:给窗体添加事件监听器)