日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

抽象类,接口

發(fā)布時(shí)間:2025/6/15 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 抽象类,接口 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

抽象類(lèi)

1.抽象類(lèi)不允許被實(shí)例化,只能被繼承。

2.抽象類(lèi)可以包含屬性和方法。

3.子類(lèi)繼承抽象類(lèi),必須實(shí)現(xiàn)抽象類(lèi)中的所有抽象方法。

?

接口

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

    ?

    ? ? 繼承關(guān)系是一種 is-a 的關(guān)系,那抽象類(lèi)既然屬于類(lèi),也表示一種 is-a 的關(guān)系。相對(duì)于抽象類(lèi)的 is-a 關(guān)系來(lái)說(shuō),接口表示一種 has-a 關(guān)系,表示具有某些功能。對(duì)于接口,有一個(gè)更加形象的叫法,那就是協(xié)議(contract)。

    ? ?抽象類(lèi)更多的是為了代碼復(fù)用,而接口就更側(cè)重于解耦。

    ?

    基于接口編程

    實(shí)際上,“基于接口而非實(shí)現(xiàn)編程”這條原則的另一個(gè)表述方式,是“基于抽象而非實(shí)現(xiàn)編程”。

    ? ? ?越抽象、越頂層、越脫離具體某一實(shí)現(xiàn)的設(shè)計(jì),越能提高代碼的靈活性,越能應(yīng)對(duì)未來(lái)的需求變化。好的代碼設(shè)計(jì),不僅能應(yīng)對(duì)當(dāng)下的需求,而且在將來(lái)需求發(fā)生變化的時(shí)候,仍然能夠在不破壞原有代碼設(shè)計(jì)的情況下靈活應(yīng)對(duì)。而抽象就是提高代碼擴(kuò)展性、靈活性、可維護(hù)性最有效的手段之一。

    ?

    ? 軟件開(kāi)發(fā)中唯一不變的就是變化。

    ? 這條原則的設(shè)計(jì)初衷是,將接口和實(shí)現(xiàn)相分離,封裝不穩(wěn)定的實(shí)現(xiàn),暴露穩(wěn)定的接口。上游系統(tǒng)面向接口而非實(shí)現(xiàn)編程,不依賴(lài)不穩(wěn)定的實(shí)現(xiàn)細(xì)節(jié),這樣當(dāng)實(shí)現(xiàn)發(fā)生變化的時(shí)候,上游系統(tǒng)的代碼基本上不需要做改動(dòng),以此來(lái)降低代碼間的耦合性,提高代碼的擴(kuò)展性。

    ??在面向?qū)ο缶幊讨?#xff0c;有一條非常經(jīng)典的設(shè)計(jì)原則,那就是:組合優(yōu)于繼承,多用組合少用繼承。

    ? 繼承主要有三個(gè)作用:表示 is-a 關(guān)系,支持多態(tài)特性,代碼復(fù)用。而這三個(gè)作用都可以通過(guò)組合、接口、委托三個(gè)技術(shù)手段來(lái)達(dá)成。

    ?

    ?

    ?

    ?

    ?

    ??

    總結(jié)

    以上是生活随笔為你收集整理的抽象类,接口的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。