如何在java中定義抽象類(lèi)和接口?相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。
成都創(chuàng)新互聯(lián)公司堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站設(shè)計(jì)、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿(mǎn)足客戶(hù)于互聯(lián)網(wǎng)時(shí)代的雞冠網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
Java主要應(yīng)用于:1. web開(kāi)發(fā);2. Android開(kāi)發(fā);3. 客戶(hù)端開(kāi)發(fā);4. 網(wǎng)頁(yè)開(kāi)發(fā);5. 企業(yè)級(jí)應(yīng)用開(kāi)發(fā);6. Java大數(shù)據(jù)開(kāi)發(fā);7.游戲開(kāi)發(fā)等。
抽象類(lèi)
只約定類(lèi)所具有的抽象行為,沒(méi)有具體實(shí)現(xiàn)相應(yīng)行為。
abstract class 類(lèi)名{ 常量; 變量; 構(gòu)造(); 訪問(wèn)修飾符abstract 返回類(lèi)型 方法名;//抽象方法 普通方法; 靜態(tài)方法(); }
1.不適合創(chuàng)建對(duì)象。
2.有些功能沒(méi)有必要實(shí)現(xiàn),有不同的子類(lèi)實(shí)現(xiàn)。
3.每次使用的都是子類(lèi)的對(duì)象。
4.為所有的子類(lèi)提供了一個(gè)模板,所有的子類(lèi)都是在此模板的基礎(chǔ)之上添加和修改完善功能而創(chuàng)建出來(lái)的。
1.不能創(chuàng)建對(duì)象。
2.必須由子類(lèi)繼承使用。
3.普通的子類(lèi)必須實(shí)現(xiàn)抽象類(lèi)中的所有抽象方法。(抽象子類(lèi)除外)
4.構(gòu)造方法不能是抽象的。
5.abstract不能和private、final、static一起使用。
6.抽象類(lèi)中的抽象方法不是必須的,可以寫(xiě),可以不寫(xiě)。
abstract class TrafficTool1{ int count; public abstract void run() ;//抽象方法 } class Car2 extends TrafficTool1{ @Override public void run() { System.out.println("汽車(chē)在公路上行駛"); } } class Tube2 extends TrafficTool1{ public void run() { System.out.println("地鐵在 地下行駛"); } } public class TestTrafficTool1 { public static void main(String[] args) { Car2 c2 = new Car2(); c2.run(); Tube2 t2 = new Tube2(); t2.run(); } }
提供了一組規(guī)則。
訪問(wèn)修飾符 interface 接口名{//所有成員都是public 常量;//public static final 抽象方法;//public abstract 默認(rèn)方法;//public default 類(lèi)型 名(){實(shí)現(xiàn)} 靜態(tài)方法;//public static 類(lèi)型 名(){實(shí)現(xiàn)} //不能被 實(shí)現(xiàn)類(lèi)繼承 //不能被 子接口繼承 靜態(tài)內(nèi)部類(lèi)型;//(public static 內(nèi)部類(lèi),內(nèi)部接口,內(nèi)部枚舉) }
1.接口不能創(chuàng)建對(duì)象。
2.由實(shí)現(xiàn)類(lèi)來(lái)實(shí)現(xiàn)功能。
3.普通的實(shí)現(xiàn)類(lèi),必須實(shí)現(xiàn)接口中的所有抽象方法。(抽象實(shí)現(xiàn)類(lèi)除外)
4.實(shí)現(xiàn)類(lèi)可以實(shí)現(xiàn)多個(gè)接口的功能。
5.接口之間可以繼承,而且可以多繼承。
1.靜態(tài)方法不能被繼承。靜態(tài)方法用 接口名.靜態(tài)方法名調(diào)用
2.實(shí)現(xiàn)多個(gè)接口方法名相同的處理
接口在開(kāi)發(fā)中,提供了一組規(guī)則和規(guī)范,一旦發(fā)布了,就不要更改了。
解決問(wèn)題:用default
interface WebBank{ void webService();//網(wǎng)上支付功能 //public abstract void webService(); default void fd() {} } //實(shí)現(xiàn)類(lèi) class Jingdong implements WebBank{ @Override public void webService() { System.out.println("京東實(shí)現(xiàn)了支付功能"); } public void show() {} } class Taobao implements WebBank{ public void webService() { System.out.println("淘寶實(shí)現(xiàn)了支付功能"); } } public class TestWebBank { public static void main(String[] args) { WebBank web = new Jingdong(); web.webService(); web.fd(); // web.show();//屏蔽 /* Jingdong jd = new Jingdong(); jd.webService(); Taobao tb = new Taobao(); tb.webService();*/ } }
接口和抽象類(lèi)的異同
相同
1.都不能創(chuàng)建對(duì)象
2.都需要用子類(lèi)或?qū)崿F(xiàn)類(lèi)來(lái)繼承或?qū)崿F(xiàn)。
3.都可以包含抽象方法。
4.普通的子類(lèi)或?qū)崿F(xiàn)類(lèi)需要實(shí)現(xiàn)所有的抽象方法(抽象的除外)。
不同
1.抽象類(lèi)是個(gè)類(lèi),是個(gè)模板類(lèi),為子類(lèi)提供模板,是個(gè)半成品。
2.接口是提供了一個(gè)功能,是一個(gè)規(guī)范。
3.抽象類(lèi) 子類(lèi)是單一繼承。
4.實(shí)現(xiàn)類(lèi) 可以實(shí)現(xiàn)多個(gè)接口。
5.接口之間可以多繼承。
看完上述內(nèi)容,你們掌握如何在java中定義抽象類(lèi)和接口的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!
文章名稱(chēng):如何在java中定義抽象類(lèi)和接口
文章路徑:http://www.chinadenli.net/article22/ppjojc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、ChatGPT、域名注冊(cè)、服務(wù)器托管、軟件開(kāi)發(fā)、網(wǎng)站內(nèi)鏈
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)