1.接口的定義格式:
Interface 接口名稱{}
2.接口中的變量一定是常量:
public static final 變量名=變量值;
3.接口中的方法沒有方法體,且方法的修飾符public abstract可以省略:
[public abstract] 返回值類型 方法名稱(參數列表);
4.當接口中需要增加方法,而不想影響到其他實現該接口的類時,可以使用默認方法,默認方法也可以被重寫:
public default 返回值類型 方法名(參數列表){ ...}
5.私有方法只能在接口內部被訪問,具有安全性,同時可以減少代碼冗余:
private 返回值類型 方法名(參數列表){ ...}
注意:接口中的方法不一定都是抽象方法,在JDK8,JDK9中,接口可以有默認方法,私有方法。
代碼演示:
interface Animal { //常量年齡為2歲 public static final int age=2; //抽象方法eat() public abstract void eat(); //默認方法run() public default void run(){ System.out.println("動物在跑"); } //靜態方法sleep() public static void sleep(){ System.out.println("動物在睡覺"); } //私有方法play() private static void play(){ System.out.println("開始游戲"); System.out.println("暫停游戲"); System.out.println("繼續游戲"); System.out.println("結束游戲"); } //默認方法happy() public default void happy(){ //調用了私有方法play(),可以減少代碼冗余,同時不讓接口以外訪問到,具有安全性 play(); System.out.println("玩得很開心"); } }
public class Cat implements Animal{ //重寫eat()抽象方法 @Override public void eat() { System.out.println("貓在吃"); } //重寫默認方法run() @Override public void run() { System.out.println("貓在跑"); } }
public class Demo6{ public static void main(String[] args) { Cat cat=new Cat(); System.out.println("貓的年齡是"+cat.age); cat.eat(); cat.run(); cat.happy(); Animal.sleep(); } }
運行結果: