Java基礎筆記35——介面
阿新 • • 發佈:2021-09-17
介面:對類來說是一套規範,是一套行為協議
語法:
<許可權訪問修飾符> interface 介面名稱
{
常量;
抽象方法;
}
常量預設修飾符:public static final
抽象方法預設修飾符:public abstract
注意:
1.介面不是類,沒有構造器,不能例項化
2.介面使用interface關鍵字修飾,不是class
3.介面與介面之間可以多繼承,但是不影響面向物件三大特徵之一:單繼承
4.類與介面之間的關係(多實現):實現關係,一個類可以實現多個介面
5.一個類可以在繼承一個父類的同時,實現一個或多個介面
介面與抽象類的對比:
相同點:
1.都可以定義抽象方法
2.都可以定義常量
3.不能被例項化
4.所有的方法不能使用static、final修飾
不同點:
1.介面使用interface修飾,抽象類使用class修飾
2.抽象類只能被單繼承,介面可以被多繼承,多實現
3.抽象類中可以定義非抽象方法,介面只能定義抽象方法
AudioDevice.java:
package com.lqh.chapter04; //音訊裝置 public interface AudioDevice { //常量 public static final int MAX_VOLUMN = 100; //常量預設修飾符:public static final int MIN_VOLUMN = 0; //抽象方法 public abstractvoid start();//開始播放 //抽象方法預設修飾符:public abstract void pause();//暫停播放 void stop();//停止播放 }
VADevice.java:
package com.lqh.chapter04; //多繼承 public interface VADevice extends AudioDevice, VideoDevice { }
VideoDevice.java:
package com.lqh.chapter04; //視訊裝置 public interface VideoDevice { //常量 publicstatic final int MAX_BTINGHT = 100; //常量預設修飾符:public static final int MIN_BTINGHT = 0; //抽象方法 public abstract void turnOn();//開機 //抽象方法預設修飾符:public abstract void turnOff();//關機 }
Television.java:
package com.lqh.chapter04; //一個類可以實現多個介面 //一個類可以在繼承一個父類的同時,實現一個或多個介面 public class Television extends Test implements AudioDevice,VideoDevice{ @Override public void start() { System.out.println("開始播放"); } @Override public void pause() { System.out.println("暫停播放"); } @Override public void stop() { System.out.println("終止播放"); } @Override public void turnOn() { System.out.println("開機"); } @Override public void turnOff() { System.out.println("關機"); } }
Test.java:
package com.lqh.chapter04; public class Test { public static void main(String[] args) { Television tv = new Television(); tv.turnOn(); tv.start(); tv.pause(); tv.stop(); tv.turnOff(); } }
輸出結果為:
開機
開始播放
暫停播放
終止播放
關機