比較接口與抽象類的異同 Java能反射實現(xiàn),內(nèi)部接口和內(nèi)部抽象類作為參數(shù)的方法嗎?
Java能反射實現(xiàn),內(nèi)部接口和內(nèi)部抽象類作為參數(shù)的方法嗎?主題不是很清楚,但是java反射可以獲得內(nèi)部類和內(nèi)部接口,也可以作為參數(shù)傳入。代碼如下:一個具有內(nèi)部類和接口的類。測試類:您可以獲得通用屬性和
Java能反射實現(xiàn),內(nèi)部接口和內(nèi)部抽象類作為參數(shù)的方法嗎?
主題不是很清楚,但是java反射可以獲得內(nèi)部類和內(nèi)部接口,也可以作為參數(shù)傳入。代碼如下:
一個具有內(nèi)部類和接口的類。
測試類:您可以獲得通用屬性和方法、內(nèi)部類和接口,并初始化內(nèi)部類。無法實例化接口。但它可以由外部類實現(xiàn),然后實例化。
測試結(jié)果如下:
接口和抽象類的主要區(qū)別?
Java提供并支持創(chuàng)建抽象類和接口。
它們有一些共同點,但區(qū)別在于接口中的所有方法都是抽象的。抽象類可以包含抽象方法和非抽象方法。類可以實現(xiàn)許多接口,但它只能繼承一個抽象類。如果一個類要實現(xiàn)一個接口,它必須實現(xiàn)接口聲明的所有方法。但是,一個類不能實現(xiàn)一個抽象類聲明的所有方法。當(dāng)然,在這種情況下,類也必須聲明為抽象的。抽象類可以實現(xiàn)接口而不提供接口方法實現(xiàn)。默認(rèn)情況下,java接口中聲明的變量是final。抽象類可以包含非最終變量。java接口中的成員函數(shù)默認(rèn)為public。抽象類成員函數(shù)可以是私有的、受保護(hù)的或公共的。接口是絕對抽象的,不能實例化。抽象類不能實例化,但如果它包含main方法,則可以調(diào)用它。您還可以參考jdk8中抽象類和接口之間的區(qū)別
1。Java接口和抽象類的相似性
](1)它們都不能實例化。
(2)接口的實現(xiàn)類或抽象類的子類只能在接口或抽象類中的方法實現(xiàn)后實例化。
2、Java接口與抽象類的區(qū)別
(1)接口只有定義,沒有方法實現(xiàn)。默認(rèn)方法體可以在Java1.8中定義,抽象類可以有定義和實現(xiàn),方法可以在抽象類中實現(xiàn)。
(2)實現(xiàn)接口的關(guān)鍵是實現(xiàn),繼承抽象類的關(guān)鍵是擴(kuò)展。一個類可以實現(xiàn)多個接口,但一個類只能繼承一個抽象類。因此,可以通過使用接口間接實現(xiàn)多重繼承。
(3)接口強(qiáng)調(diào)特定功能的實現(xiàn),而抽象類強(qiáng)調(diào)所有權(quán)。
(4)接口成員變量的默認(rèn)值是public static final,必須為其分配一個初始值,并且不能修改。它的所有成員方法都是公開的和抽象的。abstract類中的成員變量默認(rèn)為default,可以在子類中重新定義或重新賦值;abstract方法由abstract修改,不能由private、static、synchronized和native修改,必須以分號結(jié)尾,不能用大括號括起來。