日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

抽象类,接口

發布時間:2025/6/15 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 抽象类,接口 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

抽象類

1.抽象類不允許被實例化,只能被繼承。

2.抽象類可以包含屬性和方法。

3.子類繼承抽象類,必須實現抽象類中的所有抽象方法。

?

接口

  • 接口不能包含屬性(也就是成員變量)。??
  • 接口只能聲明方法,方法不能包含代碼實現。
  • 類實現接口的時候,必須實現接口中聲明的所有方法。
  • ps: jdk1.8中, 接口可以包含屬性,也能夠定義方法實現。

    ?

    ? ? 繼承關系是一種 is-a 的關系,那抽象類既然屬于類,也表示一種 is-a 的關系。相對于抽象類的 is-a 關系來說,接口表示一種 has-a 關系,表示具有某些功能。對于接口,有一個更加形象的叫法,那就是協議(contract)。

    ? ?抽象類更多的是為了代碼復用,而接口就更側重于解耦。

    ?

    基于接口編程

    實際上,“基于接口而非實現編程”這條原則的另一個表述方式,是“基于抽象而非實現編程”。

    ? ? ?越抽象、越頂層、越脫離具體某一實現的設計,越能提高代碼的靈活性,越能應對未來的需求變化。好的代碼設計,不僅能應對當下的需求,而且在將來需求發生變化的時候,仍然能夠在不破壞原有代碼設計的情況下靈活應對。而抽象就是提高代碼擴展性、靈活性、可維護性最有效的手段之一。

    ?

    ? 軟件開發中唯一不變的就是變化。

    ? 這條原則的設計初衷是,將接口和實現相分離,封裝不穩定的實現,暴露穩定的接口。上游系統面向接口而非實現編程,不依賴不穩定的實現細節,這樣當實現發生變化的時候,上游系統的代碼基本上不需要做改動,以此來降低代碼間的耦合性,提高代碼的擴展性。

    ??在面向對象編程中,有一條非常經典的設計原則,那就是:組合優于繼承,多用組合少用繼承。

    ? 繼承主要有三個作用:表示 is-a 關系,支持多態特性,代碼復用。而這三個作用都可以通過組合、接口、委托三個技術手段來達成。

    ?

    ?

    ?

    ?

    ?

    ??

    總結

    以上是生活随笔為你收集整理的抽象类,接口的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。