淺談virtual、abstract方法和靜態方法、靜態變量理解。本站提示廣大學習愛好者:(淺談virtual、abstract方法和靜態方法、靜態變量理解)文章只能為提供參考,不一定能成為您想要的結果。以下是淺談virtual、abstract方法和靜態方法、靜態變量理解正文
說點對這幾個容易混淆的詞的理解:
1、c++中的virtual方法的 virtual關鍵字主要是防止繼承中重復繼承父類的同一個方法而設置的標識。
2、virtual與abstract關鍵字的不同之處在於 virtual方法可以有具體的實現,當子類繼承父類的時候若沒有覆寫該方法,也可以使用父類中的此方法。
但是abstract方法即抽象方法是沒有具體實現的,子類需要自己實現。打個比方就是virtual 虛方法 這個 父親雖然“虛”了點但‘家產'還是有一點的,但老爸是抽象方法這個兒子就悲劇了,什麼遺產也沒有,因為他老爸的方法是抽象的,並不是“真”的。。。
另:包含抽象方法的類一定是抽象類,抽象類不一定有抽象方法(但也不能實例化)。
額,另外還有一個純干抽象事兒的 接口。裡面只有常量和抽象方法。
3、關於靜態方法和靜態變量
靜態方法是屬於類的,內存必須為它分配內存空間,這個空間一直由靜態方法占用,內存管理器不會由於靜態方法沒有被調用而將靜態方法的存儲空間收回,這樣如果將所有的方法都聲明為靜態方法,就會占用大量的內存空間,最後是系統變慢。而普通的成員方法是由對象調用的,內存並不會一直為起分配內存,只有調用的時候才為其分配存儲空間,而當其沒有被調用時,存儲空間就會被內存管理其收回,釋放沒有用的空間,提高的系統的運行速率!希望對樓主有幫助!
具體百度, 另: 靜態方法的典型用法就是單例模式。另外基於靜態方法的特點,我覺得那些需要被頻繁調用的方法適合定義成為靜態方法。此外,還有單例等特殊用途。
靜態變量:static定義的語句只會被執行一次。
以上這篇淺談virtual、abstract方法和靜態方法、靜態變量理解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持。