Java提供和支持創建抽象類和接口。它們的實現有共同點,不同點在於:
-
接口中所有的方法隱含的都是抽象的。而抽象類則可以同時包含抽象和非抽象的方法。
-
類可以實現很多個接口,但是只能繼承一個抽象類
-
類如果要實現一個接口,它必須要實現接口聲明的所有方法。但是,類可以不實現抽象類聲明的所有方法,當然,在這種情況下,類也必須得聲明成是抽象的。
-
抽象類可以在不提供接口方法實現的情況下實現接口。
-
Java接口中聲明的變量默認都是final的。抽象類可以包含非final的變量。
-
Java接口中的成員函數默認是public的。抽象類的成員函數可以是private,protected或者是public。
-
接口是絕對抽象的,不可以被實例化。抽象類也不可以被實例化,但是,如果它包含main方法的話是可以被調用的。