java接口和抽象類的異同 Java接口和抽象類的區(qū)別?
Java接口和抽象類的區(qū)別?1、Java接口與抽象類相同](1)不能實(shí)例化。(2)接口的實(shí)現(xiàn)類或抽象類的子類只能在接口或抽象類中的方法實(shí)現(xiàn)后實(shí)例化。2、Java接口與抽象類的區(qū)別(1)接口只有定義,沒
Java接口和抽象類的區(qū)別?
1、Java接口與抽象類相同](1)不能實(shí)例化。
(2)接口的實(shí)現(xiàn)類或抽象類的子類只能在接口或抽象類中的方法實(shí)現(xiàn)后實(shí)例化。
2、Java接口與抽象類的區(qū)別
(1)接口只有定義,沒有方法實(shí)現(xiàn)。默認(rèn)方法體可以在Java1.8中定義,抽象類可以有定義和實(shí)現(xiàn),方法可以在抽象類中實(shí)現(xiàn)。
(2)實(shí)現(xiàn)接口的關(guān)鍵是實(shí)現(xiàn),繼承抽象類的關(guān)鍵是擴(kuò)展。一個(gè)類可以實(shí)現(xiàn)多個(gè)接口,但一個(gè)類只能繼承一個(gè)抽象類。因此,可以通過使用接口間接實(shí)現(xiàn)多重繼承。
(3)接口強(qiáng)調(diào)特定功能的實(shí)現(xiàn),而抽象類強(qiáng)調(diào)所有權(quán)。
(4)接口成員變量的默認(rèn)值是public static final,必須為其分配一個(gè)初始值,并且不能修改。它的所有成員方法都是公開的和抽象的。abstract類中的成員變量默認(rèn)為default,可以在子類中重新定義或重新賦值;abstract方法由abstract修改,不能由private、static、synchronized和native修改,必須以分號結(jié)尾,不能用大括號括起來。