Java基礎十--介面

來源:互聯網
上載者:User

標籤:避免   機制   class   print   修飾符   div   額外   局限性   沒有   

Java基礎十--介面一、介面的定義和執行個體
  1 /*  2 abstract class AbsDemo  3 {  4     abstract void show1();  5     abstract void show2();  6 }  7   8 當一個抽象類別中的方法都是抽象的時候,這時可以將該抽象類別用  9 另一種形式定義和表示,就是 介面 interface。 10 */ 11  12 //定義介面使用的關鍵字不是class,是interface. 13 //interface編譯後還是.class檔案,其實本質上還是class. 14  15 /* 16 介面和類中是實現,介面和介面之間是多繼承,為什麼可以多繼承,因為沒有方法體,能否多繼承的實質看有沒有方法體 17 */ 18  19 /* 20 對於介面當中常見的成員:而且這些成員都有固定的修飾符。 21 1,全域常量: public  static final  22  23 2,抽象方法。public abstract 24   25 修飾詞你自己不寫的話程式給你加上。所以我們都寫上,那樣閱讀性強。 26  27 由此得出結論,介面中的成員都是公用的許可權. 28  29 繼承沒有實現成員變數,方法也是抽象方法,沒有函數體的方法,所以實現介面和繼承類不衝突,因為介面和類裡面的東西不一樣 30 */ 31 interface Demo 32 { 33     public static final int NUM = 4;//static和final和public你不寫程式會給你預設加上 34  35     public abstract void show1();//public和abstract你不寫程式會給你預設加上 36     public abstract void show2(); 37 } 38 //類與類之間是繼承關係,類與介面直接是實現關係。  39 /* 40 介面不可以執行個體化。 41  42 只能由實現了介面的子類並覆蓋了介面中所有的抽象方法後,該子類才可以執行個體化。 43 否則,這個子類就是一個抽象類別。 44  45 */ 46  47  48 class DemoImpl implements /*實現*/Demo 49 { 50     public void show1() 51     {} 52  53     public void show2() 54     { 55      56     } 57 } 58  59  60 /* 61 在java中不直接支援多繼承,因為會出現調用的不確定性。 62 所以java將多繼承機制進行改良,在java中變成了多實現。 63  64 一個類可以實現多個介面。  65  66 */ 67  68 interface A 69 { 70     public void show(); 71 } 72  73 interface Z 74 { 75     public int add(int a,int b); 76 } 77  78  79  80  81 class Test implements A,Z//多實現 82 { 83      84     public int add(int a,int b) 85     { 86         return a+b+3;     87     } 88     /**/ 89     public void show(){} 90      91 } 92  93  94  95  96  97 /* 98 一個類在繼承另一個類的同時,還可以實現多個介面。 99 100 101 102 */103 class Q104 {105     public void method()106     {}107 }108 109 abstract class Test2 extends Q implements A,Z110 {111 112 }113 /*114 介面的出現避免了單繼承的局限性。115 116 */117 118 119 interface CC120 {121     void show();122 }123 interface MM124 {125     void method();126 }127 128 interface QQ extends  CC,MM//介面與介面之間是繼承關係,而且介面可以多繼承。 129 {130     void function();131 }132 133 class WW implements QQ134 {135 //覆蓋3個方法。136     public void show(){}137     public void method(){}138     public void function(){}139 }140 141 142 class InterfaceDemo 143 {144     public static void main(String[] args) 145     {146 147         Test t = new Test();148         t.show();149 150 //        DemoImpl d = new DemoImpl();    151 //        System.out.println(d.NUM);152 //        System.out.println(DemoImpl.NUM);153 //        System.out.println(Demo.NUM);154     }155 }

 

二、介面和抽象類別的區別
 1 /* 2 抽象類別和介面的異同點: 3  4 相同點: 5     都是不斷向上抽取而來的。 6  7  8 不同點: 9     1,抽象類別需要被繼承,而且只能單繼承。10        介面需要被實現,而且可以多實現。 11     2,抽象類別中可以定義抽象方法和非抽象方法,子類繼承後,可以直接使用非抽象方法。12        介面中只能定義抽象方法,必須由子類去實現。 13     3,抽象類別的繼承,是is a關係,在定義該體系的基本共性內容。14        介面的實現是 like a 關係,在定義體系額外功能。15 16 17 18 19 犬按功能分:有導盲犬,搜爆犬。20 21 22 abstract class 犬23 {24     abstract void 吼叫();25 }26 27 //abstract class 導盲28 interface 導盲29 {30     abstract void 導盲();31 }32 33 34 class 導盲犬 extends 犬 implements 導盲35 {36     public void 吼叫()37     {38     }39     public void 導盲(){}40 }41 42 43 44 //在不同的問題領域中,有不同的分析方式。45 學員:46     學習。47     抽煙學員48 49 50 51 52 煙民。53     54 55 56 57 58 59 60 61 */62 63 class InterfaceDemo 64 {65     public static void main(String[] args) 66     {67         System.out.println("Hello World!");68     }69 }

 

Java基礎十--介面

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.