public abstract class 抽象類 {
//抽象類中也可以有抽象方法
public abstract void test();
//非抽象方法
public static int demo() {
return 1;
}
}
-------------------------- 普通類和抽象類有哪些區別-----------------------------
-
普通類不能包含抽象方法,抽象類可以包含抽象方法。
-
抽象類不能直接實例化,普通類可以直接實例化。
抽象類不能使用 final 修飾 ?
答:不能,定義抽象類就是讓其他類繼承的,如果定義為 final 該類就不能被繼承,這樣彼此就會產生矛盾,所以 final 不能修飾抽象類,如下圖所示,編輯器也會提示錯誤信息:
抽象方法也不能用final
接口和抽象類有什么區別?
-
實現:抽象類的子類用 extends 來繼承;接口必須使用 implements 來實現接口。
-
構造函數:抽象類有構造函數;接口不無。
-
main 方法:抽象類可以有 main 方法,並且我們能運行它;接口不能有 main 方法。
-
實現數量:類可以實現很多個接口;但是只能繼承一個抽象類。
-
訪問修飾符:接口中的方法默認使用 public 修飾;抽象類中的方法可以是任意訪問修飾符。