接口在java編程語言中是一個抽象類型,是抽象方法的集合,接口通常以interface來聲明,那java中接口可以聲明對象嗎?下面來我們就來給大家講解一下java接口的相關(guān)內(nèi)容。
可以使用接口聲明對象,但必須使用其實(shí)現(xiàn)類實(shí)例化,接口實(shí)例化報(bào)錯。
為什么能用接口聲明對象?
首先接口不能實(shí)例化對象這是毋庸置疑的,以下是幾點(diǎn)原因:
1.實(shí)際語義是實(shí)例化一個實(shí)現(xiàn)該接口的匿名內(nèi)部類,接口本身是用來抽象的,實(shí)例化接口沒有意義。
2.實(shí)例化實(shí)際意義是在jvm的堆中開辟出一塊內(nèi)存空間,比如Student s = new Student();此處聲明Student對象s,并且實(shí)例化一個Student對象,實(shí)則是在堆中開辟出一塊空間來存放Student對象,s則是指向這塊空間,也就是內(nèi)存中的一塊地址。這塊地址中所存放的值就是我們這個Student對象的一些屬性。而接口是抽象,沒有具體方法的實(shí)現(xiàn),但是有靜態(tài)變量。
3.本人認(rèn)為類繼承實(shí)現(xiàn)了接口就類似于子類繼承父類(因?yàn)槟憷^承接口的時(shí)候把方法重寫了,就類似于直接季繼承了父類,在這理解為向上轉(zhuǎn)型。) 而且new dd()可以理解為一個匿名類,這樣的話返回的值向上兼容,這樣的話,接口引用c就指向了具體的實(shí)現(xiàn)接口的對象,多態(tài)的體現(xiàn)。
這樣的好處在于通過接口c來調(diào)用的方法可以屏蔽掉具體的方法實(shí)現(xiàn)。換而言之,我只需要知道c要做什么,而不需要知道c怎么做。也就是在JAVA編程中經(jīng)常用到的接口回調(diào),即面向接口的編程,更為重要的一點(diǎn)是Collection c只是引用,是一個指向具體實(shí)現(xiàn)類的引用。
接口無法被實(shí)例化,但是可以被實(shí)現(xiàn),在 Java 中,接口類型可用來聲明一個變量,他們可以成為一個空指針,或是被綁定在一個以此接口實(shí)現(xiàn)的對象。最后大家如果想要了解更多java初識知識,敬請關(guān)注賦能網(wǎng)。
本文鏈接:
本文章“java中接口可以聲明對象嗎?為什么能用接口聲明對象?”已幫助 57 人
免責(zé)聲明:本信息由用戶發(fā)布,本站不承擔(dān)本信息引起的任何交易及知識產(chǎn)權(quán)侵權(quán)的法律責(zé)任!
本文由賦能網(wǎng) 整理發(fā)布。了解更多培訓(xùn)機(jī)構(gòu)》培訓(xùn)課程》學(xué)習(xí)資訊》課程優(yōu)惠》課程開班》學(xué)校地址等機(jī)構(gòu)信息,可以留下您的聯(lián)系方式,讓課程老師跟你詳細(xì)解答:
咨詢熱線:4008-569-579