1.什么是抽象類
特點整理:
抽象類画拾,不能被實例化,非抽象的類的子類菜职,可以實例化青抛;
抽象類中不能含有抽象方法,但是如果是抽象方法酬核,就一定是抽象類蜜另;
抽象類中方法只是申明,但無具體方法體內容嫡意;
抽象類中方法必須使用abstract進行
抽象方法必須為public與protected修飾举瑰,不能使用private(如果方法不能被繼承,子類方法將無法得到實現)
如果抽象類被子類繼承鹅很,則子類需要實現抽象類的抽象方法嘶居,如果子類沒有實現父類的抽象方法,在需要將子類也定義為抽象方法促煮。
抽象類就是為了繼承而存在的邮屁,如果不繼承抽象類方法無法實現與使用。
2.什么接口
接口類中的變量會被隱形地指定為public static final變量(并且只能是public static final變量菠齿,用private修飾會報編譯錯誤)
使用interface 的作為修改
接口類中方法會被隱形地指定為public abstract方法且只能是public abstract方法(用其他關鍵字佑吝,比如private、protected绳匀、static芋忿、 final等修飾會報編譯錯誤)
接口中所有的方法不能有具體的實現(接口中的方法必須都是抽象方法)
一個類可以繼承多個接口,解決類繼承1對1的操作
3.語法不同點
1.語法層面上的區(qū)別
1)抽象類可以提供成員方法的實現細節(jié)疾棵,而接口中只能存在public abstract 方法戈钢;
2)抽象類中的成員變量可以是各種類型的,而接口中的成員變量只能是public static final類型的是尔;
3)接口中不能含有靜態(tài)代碼塊以及靜態(tài)方法殉了,而抽象類可以有靜態(tài)代碼塊和靜態(tài)方法;
4)一個類只能繼承一個抽象類拟枚,而一個類卻可以實現多個接口薪铜。
以上來自https://www.cnblogs.com/dolphin0520/p/3811437.html