• 软件的接口,是一种特殊的类,表示一种规范,是具有多个方法的特征集合
  • Java中的接口,表示一种规范,必须遵循:

    接口层次(规范)--->类层次(具体数据传输功能)--->对象层次(对象实例)

  • 所以,接口只关心规范,不规范类内部的实现细节。 
  • 接口实现类,是体现出了真正的多态。通过接口,可以解除耦合。
  • Java中的接口,是多个抽象类的抽象。接口的语法用interface关键字修饰。[public] interface XXX{   }
  • 接口名用able结尾,表示具有某种功能。
  • 成功编译后,和类一样,具有一份字节码。
  • 接口中没有构造器,所以不能创建对象,不能用new。
  • 接口中定义的内部类都是公共的静态内部类(public static)修饰。
  • 接口中的成员变量用 public static final 来修饰,表示全局静态常量。
1     public static final int age=10;
  • 接口中定义的方法为公共抽象方法,所以默认的修饰符为public abstract来修饰。一般我们不用加public,因为默认已经加了。
  • 接口的特点:
  1. 不能显示定义构造器,不能实例化。
  2. 接口只能继承接口,可以多继承。
1 interface Walkable{
 2     void walk();    
 3 }
 4 w 6     void swim();
 7 }
 8 
 9 interface Amphibiousable extends Walkable,Swimable{//可添加修饰符
10     
11 }

  3. 接口类之间,只有实现关系,用implements关键字表示。

    [修饰符] class 实现类名 extends 父类 implements 接口1,接口2{...}

1 interface Walkable{
 2     void walk();    
 3 }
 4 class Cats implements Walkable{
 5     public void walk() {//必须用public修饰,因为实现类要覆盖接口的时候,按规定子类方法的访问修饰符必须大于等于父类的访问修饰符。
 6         System.out.println("Cat walks");
 7     }
 8 }
 9 //main中
10         Cats c=new Cats();
11         c.walk();

    但是建议实现的方法为:

1         Walkable c=new Cats();
2         c.walk();

    体现出多态的思想。

  •  接口和抽象类的区别
  1. 相同点:都位于继承的顶端,可被继承;都可以继承抽象方法,子类/实现类 必须覆写这些方法;都不能实例化
  2. 不同点:接口没有构造方法,抽象类有;抽象类可包含普通和抽象方法,接口只能包括抽象方法;一个类只能继承一个父类,却可以实现多个接口(多继承)。接口的变量修饰符默认为:public static final,而抽象类默认是包权限;接口内的方法修饰符默认为:public asbtract,而抽象类默认是包权限;接口内部类默认是:public static,而抽象类默认是包权限。