溫馨提示×

溫馨提示×

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

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

淺談virtual、abstract方法和靜態(tài)方法、靜態(tài)變量理解

發(fā)布時(shí)間:2020-08-19 12:45:57 來源:腳本之家 閱讀:156 作者:jingxian 欄目:編程語言

說點(diǎn)對這幾個(gè)容易混淆的詞的理解:

1、c++中的virtual方法的 virtual關(guān)鍵字主要是防止繼承中重復(fù)繼承父類的同一個(gè)方法而設(shè)置的標(biāo)識(shí)

2、virtual與abstract關(guān)鍵字的不同之處在于 virtual方法可以有具體的實(shí)現(xiàn),當(dāng)子類繼承父類的時(shí)候若沒有覆寫該方法,也可以使用父類中的此方法。

  但是abstract方法即抽象方法是沒有具體實(shí)現(xiàn)的,子類需要自己實(shí)現(xiàn)。打個(gè)比方就是virtual 虛方法 這個(gè) 父親雖然“虛”了點(diǎn)但‘家產(chǎn)'還是有一點(diǎn)的,但老爸是抽象方法這個(gè)兒子就悲劇了,什么遺產(chǎn)也沒有,因?yàn)樗习值姆椒ㄊ浅橄蟮?,并不是“真”的。?!?/p>

另:包含抽象方法的類一定是抽象類,抽象類不一定有抽象方法(但也不能實(shí)例化)。

額,另外還有一個(gè)純干抽象事兒的 接口。里面只有常量和抽象方法。

3、關(guān)于靜態(tài)方法和靜態(tài)變量

靜態(tài)方法是屬于類的,內(nèi)存必須為它分配內(nèi)存空間,這個(gè)空間一直由靜態(tài)方法占用,內(nèi)存管理器不會(huì)由于靜態(tài)方法沒有被調(diào)用而將靜態(tài)方法的存儲(chǔ)空間收回,這樣如果將所有的方法都聲明為靜態(tài)方法,就會(huì)占用大量的內(nèi)存空間,最后是系統(tǒng)變慢。而普通的成員方法是由對象調(diào)用的,內(nèi)存并不會(huì)一直為起分配內(nèi)存,只有調(diào)用的時(shí)候才為其分配存儲(chǔ)空間,而當(dāng)其沒有被調(diào)用時(shí),存儲(chǔ)空間就會(huì)被內(nèi)存管理其收回,釋放沒有用的空間,提高的系統(tǒng)的運(yùn)行速率!希望對樓主有幫助!

具體百度, 另: 靜態(tài)方法的典型用法就是單例模式。另外基于靜態(tài)方法的特點(diǎn),我覺得那些需要被頻繁調(diào)用的方法適合定義成為靜態(tài)方法。此外,還有單例等特殊用途。

靜態(tài)變量:static定義的語句只會(huì)被執(zhí)行一次

以上這篇淺談virtual、abstract方法和靜態(tài)方法、靜態(tài)變量理解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持億速云。

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

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

AI