java修飾符 abstract 修飾符

2021-06-07 02:09:42 字數 1456 閱讀 3985

abstract 修飾符

abstract 修飾符可以用來修飾類和成員方法

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

用 abstract 修飾的方法表示抽象方法,抽象方法沒有方法體。抽象方法用來描述系統具有什麼功能,但不提供具體的實現。沒有用 abstract 修飾的方法稱為具體方法,具體方法具有方法體。

abstract 語法規則:

抽象類可以沒有抽象方法,但包括了抽象方法的類必須被定義為抽象類。如果子類沒有實現父類中所有的抽象方法,那麼子類也必須被定義為抽象類。

以下乙個父類

package test;  

//抽象類  

abstract class shape               

//定義了乙個抽象方法,方法體為空,只要有類繼承就必須實現這個抽象方法,否則子類也必須宣告為抽象類  

abstract double area();            

}  其中乙個抽象方法 abstract double area();

現有一子類去實現這個父類,會出現什麼情況?

package test;  

//子類繼承父類  

class square extends shape  

}  error!!!

父類有一抽象方法 abstract double area();

子類必須去實現,否則本身也只能為抽象類。

所以,要麼:

package test;  

//子類繼承父類  

class square extends shape  

//實現抽象方法  

double area()  

}  要麼:

package test;  

//子類繼承父類  

abstract class square extends shape  

}  沒有抽象構造方法,也沒有抽象靜態方法。

abstract class base 

抽象類中可以有非抽象的構造方法,建立子類的例項時可能會呼叫這些構造方法。抽象類不能被例項化,然而可以建立乙個引用變數,其型別是乙個抽象類,並讓它引用非抽象的子類的乙個例項。

abstract class base{}  

class sub extends base} 

抽象類及抽象方法不能被 final 修飾符修飾。因為抽象類只允許建立子類,它的抽象方法才能被實現,並且只有它的具體子類才能被例項化,而用final 修飾的類不允許擁有子類,用 final 修飾的方法不允許被子類方法覆蓋,因此把abstract 修飾符與 final 修飾符連用,會導致自相矛盾。(從而引申出介面的方法不能用final修飾)

java修飾符五 abstract 修飾符

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

final修飾符和abstract修飾符

用final修飾的類無法被繼承 用final修飾的方法可以被繼承但是不能被重寫 用final修飾的變數表示常量,只能賦值一次 abstract修飾符可以修飾方法也可以修飾類,如果修飾方法,那麼這個方法就是抽象方法,如果修飾類,那麼就是抽象類。抽象類中可以沒有抽象方法,但是如果有乙個類中有抽象方法,那...

abstract(抽象)修飾符

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