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 修飾的方法表示...