1 因?yàn)閖ava不支持多重繼承,所以有了接口,一個(gè)類只能繼承一個(gè)父類,但可以實(shí)現(xiàn)多個(gè)接口,接口本身也可以繼承多個(gè)接口。
2 接口里面的成員變量默認(rèn)都是public static final類型的。必須被顯示的初始化。
3 接口里面的方法默認(rèn)都是public abstract類型的。隱式聲明。
4 接口沒(méi)有構(gòu)造方法,不能被實(shí)例化。
5 接口不能實(shí)現(xiàn)另一個(gè)接口,但可以繼承多個(gè)接口。
6 類如果實(shí)現(xiàn)了一個(gè)接口,那么必須實(shí)現(xiàn)接口里面的所有抽象方法,否則類要被定義為抽象類。
抽象類
1 如果將一個(gè)類聲明為abstract,此類不能生成對(duì)象,只能被繼承使用。
2 抽象方法必須存在于抽象類中。
3 抽象類中可以有一般的變量和一般的方法。
4 子類繼承抽象類必須實(shí)現(xiàn)其中抽象方法,除非子類為抽象類。
1
2
|
private void print(){};此語(yǔ)句表示方法的空實(shí)現(xiàn)。 abstract void print(); 此語(yǔ)句表示方法的抽象,無(wú)實(shí)現(xiàn)。 |
接口和抽象類的區(qū)別
1 接口只能包含抽象方法,抽象類可以包含普通方法。
2 接口只能定義靜態(tài)常量屬性,抽象類既可以定義普通屬性,也可以定義靜態(tài)常量屬性。
3 接口不包含構(gòu)造方法,抽象類里可以包含構(gòu)造方法。
抽象類不能被實(shí)例化,但不代表它不可以有構(gòu)造函數(shù),抽象類可以有構(gòu)造函數(shù),備繼承類擴(kuò)充.
以上所述是小編給大家介紹的Java中抽象類和接口的區(qū)別_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)服務(wù)器之家網(wǎng)站的支持!