抽象類和接口的區(qū)別:
(推薦教程:java入門教程)
抽象類中既可以包含抽象方法,也可以包含非抽象的普通方法;而接口中的方法必須是抽象方法。
抽象類中的抽象方法的訪問類型可以是public、protected、default,但接口中的抽象方法只能是public。
抽象類中可以有普通成員變量,而接口中的所有變量均為public static final修飾,即均為常量。
抽象類里可以有構(gòu)造方法,而接口中不能有構(gòu)造方法。
抽象類里可以有靜態(tài)方法,而接口中不能有靜態(tài)方法。
一個(gè)類可以實(shí)現(xiàn)多個(gè)接口,但只能繼承一個(gè)抽象類。如果抽象類實(shí)現(xiàn)接口,則可以把接口中的方法映射到抽象類中作為抽象方法,而不必實(shí)現(xiàn),而在抽象類的子類中實(shí)現(xiàn)接口中方法。
抽象類和接口的相同點(diǎn):
(學(xué)習(xí)視頻推薦:java課程)
-
都可以被繼承
-
都可以包含方法聲明
-
都不可以實(shí)例化
-
派生類必須實(shí)現(xiàn)未實(shí)現(xiàn)的方法