抽象類
1、含有抽象方法的類稱之爲抽象類,並且必須用abstract關鍵字修飾(抽象類是可以含有普通的方法的)
2、抽象方法是一種特殊的方法:它只有聲明,而沒有具體的實現。
abstract void fun();
3、抽象方法必須爲public或者protected(因爲如果爲private,則不能被子類繼承,子類便無法實現該方法),缺省情況下默認爲public。
4、抽象類不能用來創建對象。
5、如果一個類繼承於一個抽象類,則子類必須實現父類的抽象方法。如果子類沒有實現父類的抽象方法,則必須將子類也定義爲爲abstract類。
接口類
1、接口中可以含有 變量和方法。
2、變量必須定義爲public static final(默認就是這個)
3、方法會被隱式地指定爲public abstract方法且只能是public abstract方法
4、方法不可以有具體的實現
抽象類和接口類的相同點
抽象類和接口類的區別
接口的實現類或抽象類的子類都只有實現了接口或抽象類中的方法後才能實例化
抽象類和接口類的區別
抽象類可以提供成員方法的實現細節,而接口中只能存在public abstract 方法;
抽象類中的成員變量可以是各種類型的,而接口中的成員變量只能是public static final類型的;
接口中不能含有靜態代碼塊以及靜態方法,而抽象類可以有靜態代碼塊和靜態方法;
一個類只能繼承一個抽象類,而一個類卻可以實現多個接口。