-
當前位置:首頁 > 創(chuàng)意學院 > 技術 > 專題列表 > 正文
接口可以有具體方法嗎(接口可以有具體方法嗎對嗎)
大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關于接口可以有具體方法嗎的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。
ChatGPT國內(nèi)免費在線使用,能給你生成想要的原創(chuàng)文章、方案、文案、工作計劃、工作報告、論文、代碼、作文、做題和對話答疑等等
你只需要給出你的關鍵詞,它就能返回你想要的內(nèi)容,越精準,寫出的就越詳細,有微信小程序端、在線網(wǎng)頁版、PC客戶端,官網(wǎng):https://ai.de1919.com
本文目錄:
一、java:一個類實現(xiàn)某個接口的時候可不可以只實現(xiàn)這個接口中的部分方法,還是必須實現(xiàn)接口中的全部方法呢
不一定,關鍵要看子類是否是抽象類。
如果子類是非抽象類,則必須實現(xiàn)接口中的所有方法;
如果子類是抽象類,則可以不實現(xiàn)接口中的所有方法,因為抽象類中允許有抽象方法的存在!
1、抽象類定義
抽象類往往用來表征對問題領域進行分析、設計中得出的抽象概念,是對一系列看上去不同,但是本質(zhì)上相同的具體概念的抽象。通常在編程語句中用 abstract 修飾的類是抽象類。在C++中,含有純虛擬函數(shù)的類稱為抽象類,它不能生成對象;在java中,含有抽象方法的類稱為抽象類,同樣不能生成對象。抽象類是不完整的,它只能用作基類。在面向?qū)ο蠓椒ㄖ?,抽象類主要用來進行類型隱藏和充當全局變量的角色。
2、抽象類特點
1)抽象類不能實例化。
2)抽象類可以包含抽象方法和抽象訪問器。
3)不能用 sealed 修飾符修飾抽象類,因為這兩個修飾符的含義是相反的。 采用 sealed 修飾符的類無法繼承,而 abstract 修飾符要求對類進行繼承。
4)從抽象類派生的非抽象類必須包括繼承的所有抽象方法和抽象訪問器的實際實現(xiàn)。
3、與具體類的比較
1)抽象類不能直接實例化,并且對抽象類使用 new 運算符會導致編譯時錯誤。雖然一些變量和值在編譯時的類型可以是抽象的,但是這樣的變量和值必須或者為 null,或者含有對非抽象類的實例的引用(此非抽象類是從抽象類派生的)。
2)允許(但不要求)抽象類包含抽象成員。
3)抽象類不能被密封。
4、與接口的比較
1)相同點
a、不能實例化;
b、包含未實現(xiàn)的方法聲明;
c、派生類必須實現(xiàn)未實現(xiàn)的方法,抽象類是抽象方法,接口則是所有成員(不僅是方法包括其他成員)
2)不同點
a、類可以實現(xiàn)無限個接口,但僅能從一個抽象(或任何其他類型)類繼承,從抽象類派生的類仍可實現(xiàn)接口,從而得出接口是用來解決多重繼承問題的。
b、抽象類當中可以存在非抽象的方法,可接口不能,且它里面的方法只是一個聲明必須用public來修飾沒有具體實現(xiàn)的方法。
c、抽象類中的成員變量可以被不同的修飾符來修飾,可接口中的成員變量默認的都是靜態(tài)常量(static final)。
d、抽象類是對象的抽象,然而接口是一種行為規(guī)范。
二、java中一個接口的實現(xiàn)類中可以有接口中沒有的方法嗎
不一定,抽象類實現(xiàn)某個接口,可以不實現(xiàn)所有接口的方法,可以由它的子類實現(xiàn)。
比如
1
2
3
4
5
6
public interface A {//定義一個接口
public void show();//定義一個接口方法
}
public abstract class AExtend implements A{//抽象類實現(xiàn)接口A,但可以不實現(xiàn)show方法,由子類再去實現(xiàn)
}
三、java接口里面是否能有main方法?
不能有。
1、main方式是靜態(tài)方法,靜態(tài)方式是需要分配內(nèi)存空間,而接口是表現(xiàn)形式,沒有分配空間。
2、接口的規(guī)范規(guī)定,接口是完全抽象的一個類,不提供任何實現(xiàn),是通過實現(xiàn)類去實現(xiàn)的,而靜態(tài)方法與實現(xiàn)類無關,會產(chǎn)生矛盾
3、最主要,這么定義,在編譯的時候是會報錯的。
所以接口中不能有main方法
四、怎么調(diào)用接口中的方法
1、首先啟動電腦上的Eclipse,依次選擇File→New→Project。在彈出的Select a wizard窗口中,選擇Java Project 后點擊下一步。
2、輸入項目名稱后點擊下一步(名稱命名可以任意,但是要注意符合命名規(guī)范)、
3、鼠標右擊新建的項目,依次選擇New→Package,在package name里面輸入自己想取的名字后點擊next
4、鼠標右擊包,依次選擇New→ Interface,創(chuàng)建一個接口
5、將接口命名為ShoutAbility后,點擊完成。
6、定義接口shout()方法,并按下Ctrl +S 保存,經(jīng)常保存是一個良好的習慣。
7、右擊包,依次選擇New→Class,并將類命名為AoShout。
8、將AoShout 實現(xiàn)ShoutAbility接口,并且要實現(xiàn)接口里面的shout方法,實現(xiàn)接口的關鍵字為 implements。按下Ctrl+S 保存。
9、創(chuàng)建一個Bird類,并定義一個帶參
10、創(chuàng)建一個測試類,用接口的實現(xiàn)類AoShout創(chuàng)建一個接口對象,再用創(chuàng)建的bridShout對象創(chuàng)建一個鳥對象。這時候調(diào)用鳥類的方法,就會執(zhí)行調(diào)用到接口的方法,通過接口找到實現(xiàn)類的方法嗷嗷叫。
以上就是關于接口可以有具體方法嗎相關問題的回答。希望能幫到你,如有更多相關問題,您也可以聯(lián)系我們的客服進行咨詢,客服也會為您講解更多精彩的知識和內(nèi)容。
推薦閱讀: