標籤:void 多重繼承 span java eve 效能 out 樣本 str
引用知乎看到對介面的總結:
介面就是個招牌
比如說你餓了,看到前面有個掛著KFC的店,然後你想到可以進去買漢堡了。
KFC就是介面,我們看到了這個介面,就知道這個店會賣漢堡(實現介面)。
那麼為什麼我們要去定義一個介面,這個店可以直接賣漢堡啊(直接寫實現方法),是的,這個店可以直接賣炸雞腿,但沒有掛KFC的招牌,我們就不知道裡面賣的是啥。
我們可能就要進去問,你這裡賣不賣漢堡啊(這就是反射)。很顯然,這樣一家家的問實在是非常麻煩(反射效能很差)。
我們可能就要記住,XX路XXX號賣漢堡,XX...(寫入程式碼),很顯然這樣我們要記住的很多很多東西(代碼量劇增),而且,如果有新的店賣漢堡,我們也不可能知道(不利於擴充)。
介面的定義如下:
[修飾符]interface<介面名>[extends<介面列表>]{ 資料成員; //預設為public static final 成員函數; //預設為public abstract}
注意:介面可實現多重繼承
介面的實現如下:
[存取修飾詞]class 類名 implements[介面列表]{ public 成員函數;}樣本如下:
1 interface InterFace0{ 2 void print(); 3 } 4 class InterFace1 implements InterFace0{ 5 public void print(){ 6 System.out.println("介面InterFace0實現"); 7 } 8 } 9 public class InterFace {10 public static void main(String args[]){11 InterFace1 inter = new InterFace1();12 inter.print();13 }14 }
介面的多重繼承:
1.可以讓一個介面去繼承多個介面, 再用一個類來實現介面
1 interface InterFace0{ 2 void print0(); 3 } 4 interface InterFace1{ 5 void print1(); 6 } 7 //介面InterFace2繼承InterFace0,InterFace1 8 interface InterFace2 extends InterFace0,InterFace1{ 9 }10 //achieve類實現介面11 class achieve implements InterFace2{ 12 public void print0(){13 System.out.println("InterFace0 print0方法");14 }15 public void print1(){16 System.out.println("InterFace1 print1方法");17 }18 }19 public class InterFace {20 public static void main(String args[]){21 achieve inter = new achieve();22 inter.print0();23 inter.print1();24 }25 }26 //輸出:27 //InterFace0 print0方法28 //InterFace1 print1方法
2.也可以讓一個類去繼承多個介面
1 interface InterFace0{ 2 void print0(); 3 } 4 interface InterFace1{ 5 void print1(); 6 } 7 //類achieve繼承InterFace0,InterFace1兩個介面 8 class achieve implements InterFace0,InterFace1{ 9 public void print0(){10 System.out.println("InterFace0 print0方法");11 }12 public void print1(){13 System.out.println("InterFace1 print1方法");14 }15 }16 public class InterFace {17 public static void main(String args[]){18 achieve inter = new achieve();19 inter.print0();20 inter.print1();21 }22 }23 //輸出:24 //InterFace0 print0方法25 //InterFace1 print1方法
JAVA學習遇到的問題:介面實現