溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

C++中抽象類有哪些特點(diǎn)

發(fā)布時(shí)間:2021-03-09 14:53:59 來源:億速云 閱讀:714 作者:小新 欄目:開發(fā)技術(shù)

這篇文章主要介紹了C++中抽象類有哪些特點(diǎn),具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

  抽象類往往用來表征對(duì)問題領(lǐng)域進(jìn)行分析、設(shè)計(jì)中得出的抽象概念,是對(duì)一系列看上去不同,但是本質(zhì)上相同的具體概念的抽象。通常在編程語(yǔ)句中用abstract修飾的類是抽象類。在C++中,含有純虛擬函數(shù)的類稱為抽象類,它不能生成對(duì)象;在java中,含有抽象方法的類稱為抽象類,同樣不能生成對(duì)象。抽象類是不完整的,它只能用作基類。在面向?qū)ο蠓椒ㄖ?,抽象類主要用來進(jìn)行類型隱藏和充當(dāng)全局變量的角色。

  抽象類概念理解

  在面向?qū)ο蟮母拍钪?,所有的?duì)象都是通過類來描繪的,但是反過來,并不是所有的類都是用來描繪對(duì)象的,如果一個(gè)類中沒有包含足夠的信息來描繪一個(gè)具體的對(duì)象,這樣的類就是抽象類。

  抽象類往往用來表征對(duì)問題領(lǐng)域進(jìn)行分析、設(shè)計(jì)中得出的抽象概念,是對(duì)一系列看上去不同,但是本質(zhì)上相同的具體概念的抽象。

  比如,在一個(gè)圖形編輯軟件的分析設(shè)計(jì)過程中,就會(huì)發(fā)現(xiàn)問題領(lǐng)域存在著圓、三角形這樣一些具體概念,它們是不同的,但是它們又都屬于形狀這樣一個(gè)概念,形狀這個(gè)概念在問題領(lǐng)域并不是直接存在的,它就是一個(gè)抽象概念。而正是因?yàn)槌橄蟮母拍钤趩栴}領(lǐng)域沒有對(duì)應(yīng)的具體概念,所以用以表征抽象概念的抽象類是不能夠?qū)嵗摹?/p>

  c#中的抽象類的特征

  抽象類具有以下特性:

  抽象類不能實(shí)例化。

  抽象類可以包含抽象方法和抽象訪問器。

  不能用sealed修飾符修飾抽象類,因?yàn)檫@兩個(gè)修飾符的含義是相反的。采用sealed修飾符的類無法繼承,而abstract修飾符要求對(duì)類進(jìn)行繼承。

  從抽象類派生的非抽象類必須包括繼承的所有抽象方法和抽象訪問器的實(shí)際實(shí)現(xiàn)。

  抽象類與具體類比較

  抽象類不能直接實(shí)例化,并且對(duì)抽象類使用new運(yùn)算符會(huì)導(dǎo)致編譯時(shí)錯(cuò)誤。雖然一些變量和值在編譯時(shí)的類型可以是抽象的,但是這樣的變量和值必須或者為null,或者含有對(duì)非抽象類的實(shí)例的引用(此非抽象類是從抽象類派生的)。

  允許(但不要求)抽象類包含抽象成員。

  抽象類不能被密封。

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“C++中抽象類有哪些特點(diǎn)”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

c++
AI