1. 程式人生 > >JAVA的抽象類

JAVA的抽象類

str 子類 方法 關鍵字 訪問 抽象 trac 功能 創建

抽象類雖然不能單獨實現我們需要達到的目的,但它卻能為我們實現所需的功能提供很對益處。

什麽是抽象類?

在面向對象的概念中,所有的對象都是通過類來描繪的,但是反過來,並不是所有的類都是用來描繪對象的,如果一個類中沒有包含足夠的信息來描繪一個具體的對象,這樣的類就是抽象類。

抽象類除了不能實例化對象之外,類的其它功能依然存在,成員變量、成員方法和構造方法的訪問方式和普通類一樣。

由於抽象類不能實例化對象,所以抽象類必須被繼承,才能被使用。也是因為這個原因,通常在設計階段決定要不要設計抽象類。

父類包含了子類集合的常見的方法,但是由於父類本身是抽象的,所以不能使用這些方法。

Java中抽象類表示的是一種繼承關系,一個類只能繼承一個抽象類,而一個類卻可以實現多個接口。

並且,若繼承了抽象類的子類並未實現抽象類的全部方法,則它依然是個抽象類。

抽象類的特點:
1,抽象類中不一定包含抽象方法,但是有抽象方法的類必定是抽象類。

2.抽象類中的抽象方法只是聲明,不包含方法體,就是不給出方法的具體實現也就是方法的具體功能

3,抽象方法和抽象類都必須被abstract關鍵字修飾。
4,抽象類不可以用new創建和實例化對象。因為抽象類本身就是不完整的。
5,抽象類中的抽象方法要被使用,必須由子類復寫所有的抽象方法後,建立子類對象調用。

6 抽象類不能被實例化,如果被實例化,就會報錯,編譯無法通過。只有抽象類的非抽象子類可以創建對象。

抽像類的使用

抽象類需要設定一個抽象的父類,並且設定各方法的接口。然後再設定子類來繼承父類並且實現父類中的具體方法。如果有需求,可以設計抽象子類實現父類的部分方法,然後再設定子類的子類來實現未完成的方法。

抽象類的好處

抽象類可以將一系列有相互關系的類整合起來,相當於形成一個具有多種功能與身份的類。抽象類能讓程序員思緒更為清晰,程序的格式更加有條理。各種子類對同一個函數名可以實現多種不同的功能,用於多種不同的對象,使其不再單一,彼此之間又有著相互聯系。也相當於將各種功能不同的類整合起來,使程序員的編程更加的簡單,有條理。

JAVA的抽象類