今天看了韩顺平老师所讲解的接口(interface),进一个加深了对接口的理解。接口:就是给出一些没有内容的方法(抽象方法),封装到一起,到某个类要使用的时候,在根据具体情况把这些方法写出来。也可以这样理解:接口是更加抽象的抽象类,抽象类的方法可以有普通方法(成员方法),接口里的所有方法都没有方法体(抽象方法)。接口体现了程序设计的多态性和高内聚低耦合的设计思想。
    接口的注意事项:   1.接口不能被实例化。   2.接口内的所有方法都没有方法主体(抽象方法)。   3.一个类可以实现多个接口(解决了类的单继承)。   4.接口中可以有变量但是常量final(只能用public修饰,或者不加修饰符会默认为public,接口中的变量会默认为final)而且接口中的变量是静态的static。最终的常量,相当于全局常量。在java开发中,把经常用的变量定义在接口中,作为全局变量使用。访问形式,接口名.变量名。   5.一个接口不能继承其它类,但是可以继承别的接口(接口可以继承接口)。  public class Interface {
 public static void main(String[] args) {  //实例化相机类
  Camera cam=new Camera(); //实例化手机类
  MobliePhone mp=new MobliePhone(); //实例化电脑类
  Computer com=new Computer();//使用接口
  com.useUsb(cam);
  com.useUsb(mp);
  System.out.println(Usb.name+" fighting");
  
 }
}
//定义Usb接口
interface Usb{
 //接口里的方法都是抽象方法,不加abstract也会默认有一个abstract。
 //接口里的访问修饰符必须是公共的,不加也会默认是公共的。
 //接口里的变量是静态的常量。常量不能为空,声明时必须赋值。
 public static final String name="鑫鑫";
 public void start();
 abstract public void stop();
}//定义另一个接口Usb_expand 
interface Usb_expand extends Usb{
 
 void work();
 /**子接口可以重写父接口的方法,但是重写父接口里面的方法没有意义。
  * 因为,接口里面的方法没有方法主体(抽象方法),就算你不重写,子接口也拥有服接口的所以抽象方法。
  */
 
}
//照相机类
class Camera implements Usb,Usb_expand{ //实现接口里面的所以抽象方法
 @Override
 public void start() {
  // TODO Auto-generated method stub
  System.out.println("启动相机");
 } @Override
 public void stop() {
  // TODO Auto-generated method stub
  System.out.println("关闭相机");
 } @Override
 public void work() {
  // TODO Auto-generated method stub
  System.out.println("相机工作....");
 }
}
//手机类
class MobliePhone implements Usb,Usb_expand{ //实现接口里面的所以抽象方法
 @Override
 public void start() {
  // TODO Auto-generated method stub
  System.out.println("启动手机");
 } @Override
 public void stop() {
  // TODO Auto-generated method stub
  System.out.println("关闭手机");
 } @Override
 public void work() {
  // TODO Auto-generated method stub
  System.out.println("手机工作...");
 } 
}
//电脑类,拥有USB接口
class Computer{
 //使用Usb接口
 public void useUsb(Usb_expand usb){
  usb.start();
  usb.stop();
  usb.work();
 }
 
}