
語法層面上來說:
- 抽象類可以提供成員方法的實現細節(多個方法) , 抽象類在1.8(不包含1.8)之前不能提供實現細節 , 1.8之后可以通過默認方法來提供一個默認的實現方法 。
- 抽象類的成員變量可以是各種類型的 , 而接口中的成員變量只能是publicstatci final修飾的
- 抽象類中可以包含靜態方法和靜態代碼塊 , 而接口不行
- 抽象類只能繼承一個父類 , 而一個類可以實現多個接口
- 抽象類出現就是為了被繼承 , 它的設計屬于模板式的設計 。 接口設計出來是為了組合使用 , 是一種行為規范 , 屬于輻射式設計 。
- 抽象類是對事物的抽象 , 接口是對行為的抽象 。 舉個簡單的例子 , 鳥是動物 , 這個動物就是抽象類;而鳥會飛 , 這個能不能飛的能力就是一個接口 。
輻射式設計:例如手機上5g模塊 , 有的手機裝了有的手機沒裝 , 如果我們要升級5g模塊的代碼的話 , 那么所有裝了5g模塊的手機都要改動代碼)
一般來說 , 我們這樣判斷這個類該使用抽象類還是接口 。
- is-a:滿足is-a關系我們使用繼承 , 例如:玻璃杯、塑料杯都是杯子
- like-a:滿足like-a關系我們使用接口 , 例如:空調繼承于制冷機 , 但它同時有加熱功能 , 那么你應該把讓空調繼承制冷機類 , 并實現加熱接口 。
【5G|接口和抽象類有什么區別?】
相關經驗推薦
- 小米科技|小米和紅米有什么區別?哪個性價比最高?看完你就明白了
- 安卓|入門和中階手機、平板也能更新! 三星公布 Android 12 升級時程
- iqoo|目前很受歡迎的二款千元中端機,配置和性能十分主流,性價比爆棚
- mybatis|CPU和系統全是美國公司的,所以美國決定了全球智能手機公司的存亡
- 阿里巴巴|微信和支付寶二選一,你留哪個?為何馬云常說要把阿里做到102歲
- 聯想|i7-12700H和R7-6800H,這兩個CPU差距有多大?
- 芯片|華為P60 Pro曝光:打破傳統束縛,集顏值和性能于一體
- 中國手機|印度,中國手機廠商們的遠慮和近憂
- iPhone|紅米K50S系列和紅米K60疑似曝光,紅米K50:剛成為小爆款
- 一加科技|移動硬盤怎么選?機械和固態哪些值得買?買前觀看不踩坑
