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