學習啦>知識大全>知識百科>百科知識>

java中什么是抽象

時間: 歐東艷656 分享

  一.抽象類

  在了解抽象類之前,先來了解一下抽象方法。抽象方法是一種特殊的方法:它只有聲明,而沒有具體的實現(xiàn)。抽象方法的聲明格式為:

  

  abstract void fun();

  抽象方法必須用abstract關(guān)鍵字進行修飾。如果一個類含有抽象方法,則稱這個類為抽象類,抽象類必須在類前用abstract關(guān)鍵字修飾。因為抽象類中含有無具體實現(xiàn)的方法,所以不能用抽象類創(chuàng)建對象。

  下面要注意一個問題:在《JAVA編程思想》一書中,將抽象類定義為“包含抽象方法的類”,但是后面發(fā)現(xiàn)如果一個類不包含抽象方法,只是用abstract修飾的話也是抽象類。也就是說抽象類不一定必須含有抽象方法。個人覺得這個屬于鉆牛角尖的問題吧,因為如果一個抽象類不包含任何抽象方法,為何還要設(shè)計為抽象類?所以暫且記住這個概念吧,不必去深究為什么。

  [public] abstract class ClassName {

  abstract void fun();

  }

  從這里可以看出,抽象類就是為了繼承而存在的,如果你定義了一個抽象類,卻不去繼承它,那么等于白白創(chuàng)建了這個抽象類,因為你不能用它來做任何事情。對于一個父類,如果它的某個方法在父類中實現(xiàn)出來沒有任何意義,必須根據(jù)子類的實際需求來進行不同的實現(xiàn),那么就可以將這個方法聲明為abstract方法,此時這個類也就成為abstract類了。

  包含抽象方法的類稱為抽象類,但并不意味著抽象類中只能有抽象方法,它和普通類一樣,同樣可以擁有成員變量和普通的成員方法。注意,抽象類和普通類的主要有三點區(qū)別:

  1)抽象方法必須為public或者protected(因為如果為private,則不能被子類繼承,子類便無法實現(xiàn)該方法),缺省情況下默認為public。

  2)抽象類不能用來創(chuàng)建對象;

  3)如果一個類繼承于一個抽象類,則子類必須實現(xiàn)父類的抽象方法。如果子類沒有實現(xiàn)父類的抽象方法,則必須將子類也定義為為abstract類。

  在其他方面,抽象類和普通的類并沒有區(qū)別。

java中什么是抽象

一.抽象類 在了解抽象類之前,先來了解一下抽象方法。抽象方法是一種特殊的方法:它只有聲明,而沒有具體的實現(xiàn)。抽象方法的聲明格式為: abstract void fun(); 抽象方法必須用abstract關(guān)鍵字進行修飾。如果一個類含有抽象方法,則稱這
推薦度:
點擊下載文檔文檔為doc格式

精選文章

  • java中什么是內(nèi)部類介紹
    java中什么是內(nèi)部類介紹

    java內(nèi)部類 內(nèi)部類學習 所謂內(nèi)部類(Inner Class),顧名思義,就是指定義在另外一個類中的類,我們?yōu)槭裁匆@么做呢?為什么不直接定義它而要在別的類中定

  • java中什么是重載
    java中什么是重載

    重載,簡單說,就是函數(shù)或者方法有同樣的名稱,但是參數(shù)列表不相同的情形,這樣的同名不同參數(shù)的函數(shù)或者方法之間,互相稱之為重載函數(shù)或者方法。

  • java什么是棧
    java什么是棧

    棧(stack)又名堆棧,它是一種運算受限的線性表。其限制是僅允許在表的一端進行插入和刪除運算。這一端被稱為棧頂,相對地,把另一端稱為棧底。向一個

  • java什么是引用類型
    java什么是引用類型

    引用類型 由類型的實際值引用(類似于指針)表示的數(shù)據(jù)類型。如果為某個變量分配一個引用類型,則該變量將引用(或指向)原始值。不創(chuàng)建任何副本。引用

245923