特黄特色三级在线观看免费,看黄色片子免费,色综合久,欧美在线视频看看,高潮胡言乱语对白刺激国产,伊人网成人,中文字幕亚洲一碰就硬老熟妇

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

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

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

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

  一、抽象類(lèi)

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

  二、接口

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

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

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

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

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

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

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

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

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

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

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

  1.C++

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

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

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

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

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

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

  2.C#

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

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

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