Java 繼承與介面的關係

來源:互聯網
上載者:User

標籤:java   介面   繼承   

  在看Netty中NioEventLoop的UML圖時,感覺非常複雜,如所示:

  

650) this.width=650;" src="https://s3.51cto.com/wyfs02/M00/08/7D/wKiom1njEjSTKK1FAAD_bnD1apY230.png" style="float:none;" title="001--原圖.png" alt="wKiom1njEjSTKK1FAAD_bnD1apY230.png" />

    找不到重點,找不到主線,此時內心生無可戀。

   

    從而,激發出困擾了我很久的一個問題:到底繼承與介面 啥關係?

   

    這個問題,前幾天也請教過同事,也並沒有說出什麼關鍵點來。

    

    然後,對著此圖沉思了良久,終於悟出一點自己的見解:【以下僅供參考】    

    

    1、繼承,是一種血緣關係,是一個家族;是活的(感覺有生命特性);

       一個類只能有一個父類,可以直接調用/繼承父類的API,也可以覆寫父類的API


    2、介面,是一個工具,是一種協助工具功能的體現;是死的(無生命特性,僅僅是一個工具而已);

       如一個類實現了介面,就好像一個人,穿上鋼鐵俠的衣服,能力大增;但它的本質還是一個人;

       或者說,一個人,具有了車,飛機之後,這個人的行駛速度極大提高;但,本質上還是一個人;

       這些鋼鐵俠的衣服、車、飛機、手機就是一個工具,一個具體組件,模組,或者說外掛程式而已,是

       一種額外的輔助類的功能、或者認為是輔助人的功能而已,並沒有改變人的根本屬性。

       因此,類也是,同一個類可以同時實現不同的介面(如可以有車,或者穿鋼鐵俠的衣服)但是,

       本質上並沒有變,只是增加/提高了額外的行為能力


  •  一句話總結:

       繼承,是一種血緣關係的表現;

       介面,就是類的額外工具。

    

   此時,重新對上面的圖,進行修改,去掉介面(也就是去掉額外的功能,看本質),如下所示:

  

650) this.width=650;" src="https://s3.51cto.com/wyfs02/M01/08/7D/wKiom1njEjTxV_AdAADqEbsc08s046.png" style="float:none;" title="002--去掉 虛線.png" alt="wKiom1njEjTxV_AdAADqEbsc08s046.png" />

     可以看出來,應該具有3條主線,然後再具體分析。



  • 感想:

     當我們學一樣東西時,最好有自己的想法,見解;

     單純的依賴別人的總結可能不能很好的理解;

     用自己的語言,說出來,可能才是最好的。

     這個過程可能需要翻閱大量的資料來總結整理,

     一旦成功,可以記憶很長時間。

     能不能給別人解釋清楚,來驗證你到底有沒有真正掌握住。








本文出自 “XEJ分布式工作室” 部落格,請務必保留此出處http://xingej.blog.51cto.com/7912529/1972496

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.