18禁网站免费,成年人黄色视频网站,熟妇高潮一区二区在线播放,国产精品高潮呻吟AV

學(xué)習(xí)啦>知識(shí)大全>知識(shí)百科>百科知識(shí)>

Java中抽象類與接口的區(qū)別

時(shí)間: 映芳735 分享

  抽象類與接口緊密相關(guān)。然而接口又比抽象類更抽象,它們之間明顯存在區(qū)別。那到底存在哪些方面的區(qū)別呢?下面學(xué)習(xí)啦小編給大家講講Java中抽象類與接口的區(qū)別。

  一、抽象類

  在面向?qū)ο蠓椒ㄖ?,抽象類主要用?lái)進(jìn)行類型隱藏。構(gòu)造出一個(gè)固定的一組行為的抽象描述,但是這組行為卻能夠有任意個(gè)可能的具體實(shí)現(xiàn)方式。這個(gè)抽象描述就是抽象類,而這一組任意個(gè)可能的具體實(shí)現(xiàn)則表現(xiàn)為所有可能的派生類。模塊可以操作一個(gè)抽象體。由于模塊依賴于一個(gè)固定的抽象體,因此它可以是不允許修改的;同時(shí),通過(guò)從這個(gè)抽象體派生,也可擴(kuò)展此模塊的行為功能。為了能夠?qū)崿F(xiàn)面向?qū)ο笤O(shè)計(jì)的一個(gè)最核心的原則OCP(Open-Closed Principle),抽象類是其中的關(guān)鍵所在。

  二、接口

  使用interface來(lái)定義一個(gè)接口。接口定義同類的定義類似,也是分為接口的聲明和接口體,其中接口體由常量定義和方法定義兩部分組成。

  三、抽象類與接口的區(qū)別

  1,抽象類里可以有構(gòu)造方法,而接口內(nèi)不能有構(gòu)造方法。

  2,抽象類中可以有普通成員變量,而接口中不能有普通成員變量。

  3,抽象類中可以包含非抽象的普通方法,而接口中所有的方法必須是抽象的,不能有非抽象的普通方法。

  4,抽象類中的抽象方法的訪問(wèn)類型可以是public ,protected和默認(rèn)類型,但接口中的抽象方法只能是public類型的,并且默認(rèn)即為public abstract類型。

  5,抽象類中可以包含靜態(tài)方法,接口內(nèi)不能包含靜態(tài)方法。

  6,抽象類和接口中都可以包含靜態(tài)成員變量,抽象類中的靜態(tài)成員變量的訪問(wèn)類型可以任意,但接口中定義的變量只能是public static類型,并且默認(rèn)為public static類型。

  7,一個(gè)類可以實(shí)現(xiàn)多個(gè)接口,但只能繼承一個(gè)抽象類。

  8.接口更多的是在系統(tǒng)框架設(shè)計(jì)方法發(fā)揮作用,主要定義模塊之間的通信,而抽象類在代碼實(shí)現(xiàn)方面發(fā)揮作用,可以實(shí)現(xiàn)代碼的重用。

  小編推薦:抽象類運(yùn)用實(shí)例

  1.C++

  為了讓一個(gè)類成為抽象類,至少必須有一個(gè)純虛函數(shù)。包含至少一個(gè)純虛函數(shù)的類視為抽象類。

  純虛函數(shù)形式如下:

  例如,類A有兩個(gè)純虛函數(shù)lock()、unlock()和一個(gè)虛析構(gòu)函數(shù):

  將函數(shù)lock()和unlock()初始化為0使它們成為純虛函數(shù),沒(méi)有0這個(gè)初使化器,它們僅僅是虛函數(shù)。

  抽象類對(duì)于提供模式、藍(lán)圖和后代類遵循的原則有用,如果遵循了藍(lán)圖的語(yǔ)義,后代類的行為可能按抽象類提供者和使用者所期望的那樣。

  通過(guò)使用抽象類,C++程序員可以提供C++組件的規(guī)范,在它的構(gòu)建中指導(dǎo)組件的實(shí)現(xiàn)者。

  2.C#

  抽象類提供多個(gè)派生類共享基類的公共定義,它既可以提供抽象方法,也可以提供非抽象方法。如果派生類沒(méi)有實(shí)現(xiàn)所有的抽象方法,則該派生類也必須聲明為抽象類。另外,實(shí)現(xiàn)抽象方法由overriding方法來(lái)實(shí)現(xiàn)。

Java中抽象類與接口的區(qū)別

抽象類與接口緊密相關(guān)。然而接口又比抽象類更抽象,它們之間明顯存在區(qū)別。那到底存在哪些方面的區(qū)別呢?下面學(xué)習(xí)啦小編給大家講講Java中抽象類與接口的區(qū)別。 一、抽象類 在面向?qū)ο蠓椒ㄖ?,抽象類主要用?lái)進(jìn)行類型隱藏。構(gòu)造出一個(gè)固定
推薦度:
點(diǎn)擊下載文檔文檔為doc格式
537312