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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

1.13 抽象类和接口的区别

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

接口是一種特殊的抽象類,接口和抽象類的淵源頗深,有很大的相似之處,所以在選擇使用誰的問題上很容易迷糊。

1)抽象類

在 Java 中,被關鍵字 abstract 修飾的類稱為抽象類;被 abstract 修飾的方法稱為抽象方法,抽象方法只有方法聲明沒有方法體。

抽象類有以下幾個特點:

  • 抽象類不能被實例化,只能被繼承。
  • 包含抽象方法的類一定是抽象類,但抽象類不一定包含抽象方法(抽象類可以包含普通方法)。
  • 抽象方法的權限修飾符只能為 public、protected 或 default,默認情況下為 public。
  • 一個類繼承于一個抽象類,則子類必須實現抽象類的抽象方法,如果子類沒有實現父類的抽象方法,那子類必須定義為抽象類。
  • 抽象類可以包含屬性、方法、構造方法,但構造方法不能用來實例化對象,只能被子類調用。

2)接口

接口可以看成是一種特殊的類,只能用 interface 關鍵字修飾。

Java 中的接口具有以下幾個特點:

  • 接口中可以包含變量和方法,變量被隱式指定為 public static final,方法被隱式指定為 public abstract(JDK 1.8 之前)。
  • 接口支持多繼承,即一個接口可以繼承(extends)多個接口,間接解決了 Java 中類不能多繼承的問題。
  • 一個類可以同時實現多個接口,一個類實現某個接口則必須實現該接口中的抽象方法,否則該類必須被定義為抽象類。

3)抽象類和接口的區別

相同特征

接口和抽象類很像,它們都具有如下特征。

  • 接口和抽象類都不能被實例化,主要用于被其他類實現和繼承。
  • 接口和抽象類都可以包含抽象方法,實現接口或繼承抽象類的普通子類都必須實現這些抽象方法。

不同特征

但接口和抽象類之間的差別非常大,這種差別主要體現在二者設計目的上。下面具體分析二者的差別。

接口作為系統與外界交互的窗口,接口體現的是一種規范。對于接口的實現者而言,接口規定了實現者必須向外提供哪些服務(以方法的形式來提供);對于接口的調用者而言,接口規定了調用者可以調用哪些服務,以及如何調用這些服務(就是如何來調用方法)。當在一個程序中使用接口時,接口是多個模塊間的耦合標準;當在多個應用程序之間使用接口時,接口是多個程序之間的通信標準。

從某種程度上來看,接口類似于整個系統的“總綱”,它制定了系統各模塊應該遵循的標準,因此一個系統中的接口不應該經常改變。一旦接口被改變,對整個系統甚至其他系統的影響將是輻射式的,會導致系統中大部分類都需要改寫。

抽象類則不一樣,抽象類作為系統中多個子類的共同父類,它所體現的是一種模板式設計。抽象類作為多個子類的抽象父類,可以被當成系統實現過程中的中間產品,這個中間產品已經實現了系統的部分功能(那些已經提供實現的方法),但這個產品依然不能當成最終產品,必須有更進一步的完善,這種完善可能有幾種不同方式。

除此之外,接口和抽象類在用法上也存在差別,如下表所示:

一個類最多只能有一個直接父類,包括抽象類,但一個類可以直接實現多個接口,通過實現多個接口可以彌補 Java 單繼承的不足。

4)抽象類和接口的應用場景

抽象類的應用場景:

  • 父類只知道其子類應該包含怎樣的方法,不能準確知道這些子類如何實現這些方法的情況下,使用抽象類。
  • 從多個具有相同特征的類中抽象出一個抽象類,以這個抽象類作為子類的模板,從而避免了子類設計的隨意性。
  • 接口的應用場景:

  • 一般情況下,實現類和它的抽象類之前具有 “is-a” 的關系,但是如果我們想達到同樣的目的,但是又不存在這種關系時,使用接口。
  • 由于 Java 中單繼承的特性,導致一個類只能繼承一個類,但是可以實現一個或多個接口,此時可以使用接口。
  • 什么時候使用抽象類和接口:

    • 如果擁有一些方法并且想讓它們有默認實現,則使用抽象類。
    • 如果想實現多重繼承,那么必須使用接口。因為 Java 不支持多繼承,子類不能繼承多個類,但可以實現多個接口,因此可以使用接口。
    • 如果基本功能在不斷改變,那么就需要使用抽象類。如果使用接口并不斷需要改變基本功能,那么就需要改變所有實現了該接口的類。

    總結

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

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

    主站蜘蛛池模板: 欧美另类人妖 | 污视频在线观看免费 | 国内精品视频 | 91视频在线观看 | 国产精品无码成人网站视频 | 成人羞羞国产免费 | 成人精品一区二区三区电影 | 色婷婷激情五月 | 午夜精品久久久久久久99 | 日韩在线电影一区二区 | 粉嫩av一区二区白浆 | 欧美调教视频 | 伊人爱爱网 | 男男巨肉啪啪动漫3d | 免费三片在线视频 | 风流少妇一区二区三区91 | 含羞草一区二区 | 北条麻妃一区二区三区在线观看 | 国产制服av | 亚洲资源在线播放 | 欧美13p| 日韩丝袜一区 | 青青操狠狠干 | 国产鲁鲁视频在线观看特色 | 色情毛片 | 91久久人澡人人添人人爽欧美 | 日韩欧美激情视频 | 久久精品综合网 | 欧美日韩三级视频 | 亚洲免费av电影 | 一区二区三区国 | 热re99久久精品国产99热 | 日本a在线 | aaaa免费视频 | 亚洲我射av | 婷婷视频一区 | www.色啪啪.com | 91精品综合久久久久久五月天 | 国产亚洲综合在线 | 在线午夜av | 久草国产视频 | 韩日免费视频 | 亚洲国产av一区二区 | 中文字幕在线官网 | 国产人妖ts重口系列网站观看 | 欧美三级特黄 | 美丽的小蜜桃2:美丽人生 | 欧洲av一区 | 国产精品久久久久久久专区 | 亚洲性生活片 | 欧美日本韩国一区二区三区 | 久草国产视频 | 国产精品日韩一区二区 | а 天堂 在线 | 日本极品喷水 | 欧美日韩国产黄色 | 亚洲午夜久久久久久久久红桃 | 亚洲一区二区三区加勒比 | 黄色免费视频观看 | 国产精品99久久 | av最新天| 伊是香蕉大人久久 | 久久久久久98 | 丁香色网| 在线免费看污网站 | 朝桐光在线视频 | 欧美性猛交xxxx免费看 | 黄色录象片 | 在线免费观看成年人视频 | 好看的中文字幕电影 | 一个人在线观看www软件 | a级片免费视频 | 日本三级aaa| 中文字幕伊人 | 欧美肥老妇 | 亚洲三区在线观看无套内射 | 国产精品久久久无码一区 | 国产激情综合 | 日本大尺度做爰呻吟 | 亚洲成人777 | 午夜网站视频 | 蜜桃av在线播放 | 在线观看黄色 | 国产精品乱子伦 | 亚洲午夜无码av毛片久久 | www国产com| www.操.com| 欧美性天堂 | 又粗又猛又爽又黄少妇视频网站 | 欧美日韩免费一区二区 | 亚洲精品福利在线 | 精品视频一区在线观看 | 国产一道本 | 日韩高清二区 | 天天狠天天插 | 一级特黄色 | 黄色片视频免费在线观看 | 日批视频免费在线观看 | 亚洲精品九九 |