更新時間:2020-10-26 17:43:11 來源:動力節點 瀏覽1783次
學習java的時候,相信大家都碰到過純虛函數和抽象類的內容,屬于java基礎范圍內的知識,這兩者的關系是需要大家知道的,因此這篇文章來說一說純虛函數和抽象類關系,對這方面有疑惑的朋友們可以來學習下面的內容。
在純虛函數和抽象類關系的問題前,我們先來認識純虛函數和抽象類是什么:
有時在基類中將某一成員函數定為虛函數,并不是基類本身的要求,而是考慮到派生類的需要,在基類中預留了一個函數名,具體功能留給派生類根據需要去定義。純虛函數是在聲明虛函數時被“初始化”為0的函數。聲明純虛函數的一般形式是:virtual 函數類型 函數名 (參數表列) = 0;關于純虛函數需要注意的幾點:(1)純虛函數沒有函數體;(2)最后面的“=0”并不表示函數返回值為0,它只起形式上的作用,告訴編譯系統“這是純虛函數”;(3)這是一個聲明語句,最后應有分號。純虛函數只有函數的名字而不具備函數的功能,不能被調用。它只是通知編譯系統:“在這里聲明一個虛函數,留待派生類中定義”。在派生類中對此函數提供定義后,它才能具備函數的功能,可被調用。
再來談抽象類:如果聲明了一個類,一般可以用它定義對象。但是在面向對象程序設計中,往往有一些類,它們不用來生成對象。定義這些類的惟一目的是用它作為基類去建立派生類。它們作為一種基本類型提供給用戶,用戶在這個基礎上根據自己的需要定義出功能各異的派生類。用這些派生類去建立對象。
純虛函數的作用是在基類中為其派生類保留一個函數的名字,以便派生類根據需要對它進行定義。抽象類的作用是作為一個類族的共同基類,或者說,為一個類族提供一個公共接口。一個類層次結構中當然也可不包含任何抽象類,每一層次的類都是實際可用的,可以用來建立對象的。
純虛函數的作用是在基類中為其派生類保留一個函數的名字,以便派生類根據需要對它進行定義。
如果在基類中沒有保留函數名字,則無法實現多態性。如果在一個類中聲明了純虛函數,而在其派生類中沒有對該函數定義,則該虛函數在派生類中仍然為純虛函數。如果在基類聲明了虛函數,則在派生類中凡是與該函數有相同的函數名、函數類型、參數個數和類型的函數,均為虛函數(不論在派生類中是否用virtual聲明)。
使用虛函數提高了程序的可擴充性,把類的聲明與類的使用分離,這對于設計類庫的軟件開發商來說尤為重要。以上就是對純虛函數和抽象類關系的詳細介紹,如果看完以上的內容,對純虛函數和抽象類關系還有疑惑,可以在java教程中找到答案。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習