abstract(抽象)可以修飾類、方法
如果將乙個類設定為abstract,則此類必須被繼承使用。此類不可生成物件,必須被繼承使用。 abstract可以將子類的共性最大限度的抽取出來,放在父類中,以提高程式的簡潔性。 abstract雖然不能生成物件,但是可以宣告,作為編譯時型別,但不能作為執行時型別。 final和abstract永遠不會同時出現。
當abstract用於修飾方法時,此時該方法為抽象方法,此時方法不需要實現,實現留給子類覆蓋,子類覆蓋該方法之後方法才能夠生效。
注意比較:
private void print(){};此語句表示方法的空實現。
abstract void print(); 此語句表示方法的抽象,無實現。
如果乙個類中有乙個抽象方法,那麼這個類一定為乙個抽象類。 反之,如果乙個類為抽象類,那麼其中可能有非抽象的方法。
如果讓乙個非抽象類繼承乙個含抽象方法的抽象類,則編譯時會發生錯誤。因為當乙個非抽象類繼承乙個抽象方法的時候,本著只有乙個類中有乙個抽象方法,那麼這個類必須為抽象類的原則。這個類必須為抽象類,這與此類為非抽象衝突,所以報錯。
所以子類的方法必須覆蓋父類的抽象方法。方法才能夠起作用。
只有將理論被熟練運用在實際的程式設計的過程中之後,才能說理論被完全掌握!
為了實現多型,那麼父類必須有定義。而父類並不實現,留給子類去實現。此時可將父類定義成abstract類。如果沒有定義抽象的父類,那麼編譯會出現錯誤。
abstract和static不能放在一起,否則便會出現錯誤。(這是因為static不可被覆蓋,而abstract為了生效必須被覆蓋。)
java 抽象 abstract關鍵字
abstract用來修飾類或者是成員方法,用來表示抽象的意思。1,abstract修飾類,會使這個類成為乙個抽象類,這個類將不能生成物件例項,但可以做為物件變數宣告的型別,也就是編譯時型別,抽象類就像當於一類的半成品,需要子類繼承並覆蓋其中的抽象方法。2,abstract修飾方法,會使這個方法變成抽...
Java關鍵字之abstract
1.抽象類 抽象類不能被例項化。抽象類中一定有構造器,便於子類的例項化。2.抽象方法 包含抽象方法的類一定是抽象類 為了保證抽象方法不被呼叫,所以不能有該類例項 反之,抽象類中可以沒有抽象方法。抽象方法必須被非抽象子類重寫 為了保證抽象方法不被呼叫 3.abstract的應用場景 父類不需要建立例項...
abstract關鍵字和final關鍵字
abstract類和abstract方法 用關鍵字abstract修飾的類 方法 稱為abstract類 方法 抽象類,抽象方法。對於abstract方法,沒有方法體,且以 結尾,且不允許使用final和abstract同時修飾乙個類或者方法,因為被abstract修飾的話,就無法被繼承 abstr...