abstract(抽象)修飾符,可以修飾類和方法

2021-07-16 05:45:46 字數 1561 閱讀 1808

1.abstract

修飾類:會使這個類成為乙個抽象類。

ø  abstract修飾符在修飾類時必須放在類名前。

ø  將不能生成物件例項,

ø  可以作為物件變數宣告的型別,也就是編譯時型別,

ø  抽象類就像當於一類的半成品,需要子類繼承並覆蓋其中的抽象方法。

2.abstract

修飾方法,會使這個方法變成抽象方法。

ø  也就是只有宣告(定義)而沒有實現,實現部分以";"代替。

ø abstract修飾方法就是要求其子類覆蓋(實現)這個方法。

解釋:呼叫時可以以多型方式呼叫子類覆蓋(實現)後的方法,即抽象方法必須在其子類中實現,需要子類繼承實現(覆蓋)。除非子類本身也是抽象類。

注意:

u有抽象方法的類一定是抽象類。但是抽象類中不一定都是抽象方法,也可以全是具體方法。

u父類是抽象類,其中有抽象方法,那麼子類繼承父類,並把父類中的所有抽象方法都實現(覆蓋)了,子類才有建立對 象的例項的能力,否則子類也必須是抽象類。

u抽象類中可以有構造方法,是子類在構造子類物件時需要呼叫的父類(抽象類)的構造方法。

ufinal和abstract,private和abstract,static和abstract,這些是不能放在一起的修飾符

解釋:因為abstract修飾的方法是必須在其子類中實現(覆蓋),才能以多型方式呼叫,以上修飾符在修飾方法時期子類都覆蓋不了這個方法,final是不可以覆蓋,private是不能夠繼承到子類,所以也就不能覆蓋,static是可以覆蓋的,但是在呼叫時會呼叫編譯時型別的方法,因為呼叫的是父類的方法,而父類的方法又是抽象的方法,又不能夠呼叫,所以上的修飾符不能放在一起。

抽象(abstract)方法代表了某種標準,定義標準,定義功能,使用場景:

一:在子類中去實現功能(子類繼承了父類並需要給出從父類繼承的抽象方法的實現)。

二:方法一時間想不到怎麼被實現,或有意要子類去實現而定義某種標準,這個方法可以被定義為抽象。(abstract)

抽象類要注意的細節:

1. 如果乙個函式沒有方法體,那麼該函式必須要使用

abstract修飾,

把該函式修飾成抽象

的函式。。

2. 如果乙個類出現了抽象的函式,那麼該類也必須

使用abstract

修飾。3. 

如果乙個非抽象類繼承了抽象類,那麼必須要把抽象類的所有抽象方法全部實現。

4. 抽象類可以存在非抽象方法,也可以存在抽象的方法

.5. 

抽象類可以不存在抽象方法的。

6. 抽象類是不能建立物件的。

疑問:為什麼抽象類不能建立物件呢?

因為抽象類是存在抽象方法的,如果能讓抽象類建立物件的話,那麼使用抽象的物件呼叫抽象方法是沒有任何意義的。

7. 抽象類是存在建構函式的,其建構函式是提供給子類建立物件的時候初始化父類的屬性的。

abstract(抽象)修飾符

abstract 抽象 修飾符,可以修飾類和方法 1,abstract修飾類,會使這個類成為乙個抽象類,這個類將不能生成物件例項,但可以做為物件變數宣告的型別,也就是編譯時型別,抽象類就像當於一類的半成品,需要子類繼承並覆蓋其中的抽象方法。2,abstract修飾方法,會使這個方法變成抽象方法,也就...

java修飾符 abstract 修飾符

abstract 修飾符 abstract 修飾符可以用來修飾類和成員方法 用 abstract 修飾的類表示抽象類,抽象類位於繼承樹的抽象層,抽象類不能被例項化,即不允許建立抽象類本身的例項。沒有用 abstract 修飾的類稱為具體類,具體類可以被例項化。用 abstract 修飾的方法表示抽象...

java修飾符五 abstract 修飾符

7.abstract 修飾符 abstract 修飾符可以用來修飾類和成員方法 用 abstract 修飾的類表示抽象類,抽象類位於繼承樹的抽象層,抽象類不能被例項化,即不允許建立抽象類本身的例項。沒有用 abstract 修飾的類稱為具體類,具體類可以被例項化。用 abstract 修飾的方法表示...