什麼是接口:java
在封裝時,顯示器封裝了不少電子元件,最終向外暴露數據交互的孔——>>接口,目的在於實現設備和設備之間的通訊。編程
在Java中,接口表示一種規範/約束/要求實現者必須遵循該規範。用來約束使用者該怎麼作。ui
Java中的接口spa
專家說:多個抽象類的抽象就是接口。code
說人話:在Java中最小的程序單元就是類,接口實際上是一個特殊的類。繼承
Java中的接口表示規範,用於定義一組抽象方法,表示某一類事務必須具有的功能,要求實現類必須來實現該接口並提供方法實現。接口
//演示接口 interface IConnect{ String PI= "aaa"; //接口中的成員變量 void doWork(); //接口中的方法 interface IWatch{ // 接口中的類(接口) } } public class InterfaceTest { public static void main(String[] args) { System.out.println("AA"); } }
接口的定義和繼承事務
類和類之間是繼承關係:用extends來表示。class
接口和接口之間只能是繼承關係:用extends來表示。變量
接口和實現類之間只能是實現關係:用implements來表示。
接口的實現
程序示例
interface PaXing{ void doWork(); //接口中的方法 } interface ShuiXing{ void doSwim(); //接口中的方法 } interface LiangQi extends PaXing,ShuiXing{ //接口的繼承 void doSwim(); //接口中的方法 } class YYY implements LiangQi{ //類實現子類接口 public void doWork(){ System.out.println("This is YYY dowork Cat!"); } public void doSwim(){ System.out.println("This is YYY dowork Cat!"); } } class SSS implements PaXing,ShuiXing{ //類實現多接口 public void doWork(){ System.out.println("This is SSS dowork Cat!"); } public void doSwim() { System.out.println("This is SSS doswim Cat!"); } } class Fish implements ShuiXing{ //類實現單接口 public void doSwim(){ System.out.println("This is Fish doswim fish!"); } } public class InterfaceTest { public static void main(String[] args) { SSS a=new SSS(); a.doSwim(); a.doWork(); System.out.println("****************"); PaXing d= new SSS(); d.doWork(); //沒有doSwim()方法 System.out.println("****************"); YYY b=new YYY(); //鄙視寫法 b.doSwim(); b.doWork(); System.out.println("****************"); LiangQi c= new YYY(); //高級多態寫法,面向接口編程。 c.doSwim(); c.doWork(); System.out.println("****************"); ShuiXing fish1= new Fish(); fish1.doSwim(); } }
運行結果
This is SSS doswim Cat! This is SSS dowork Cat! **************** This is SSS dowork Cat! **************** This is YYY dowork Cat! This is YYY dowork Cat! **************** This is YYY dowork Cat! This is YYY dowork Cat! **************** This is Fish doswim fish!
接口和抽象類的區別
相同點
不一樣點
若是接口和實現類能夠完成相同的功能,儘可能使用接口,面向接口編程。