課程
/后端開(kāi)發(fā)
/Java
/Java入門第二季
我想知道的接口與父類的差別不是,只能繼承一個(gè)父類接口可以繼承多個(gè),而是接口的方法和屬性到底跟父類之間啥關(guān)系
2016-09-18
源自:Java入門第二季 12-2
正在回答
你可以有多個(gè)干爹(接口),但只能有一個(gè)親爹(?繼承)
我覺(jué)得你的問(wèn)題問(wèn)得很糟糕,讓我感覺(jué)都不清楚你在問(wèn)什么。你首先得吧自己要提出的問(wèn)題說(shuō)清楚。我們才能解答。不過(guò)根據(jù)我的猜測(cè),你可能是想問(wèn)子類實(shí)現(xiàn)了接口和繼承父類時(shí),對(duì)于方法的調(diào)用問(wèn)題吧。
public?interface?IA?{ ???? ????public?void?out(); ???? } public?class?SA?{ ???? ????public?void?out()?{ ????????System.out.println("SA"); ????} } public?class?A?extends?SA?implements?IA?{ ???? ????public?static?void?main(String[]?args)?{ ????????new?A().out(); ????} }
你會(huì)發(fā)現(xiàn)輸出結(jié)果是SA。
可見(jiàn)子類中的out()方法是從父類來(lái)的。注意:實(shí)現(xiàn)接口有個(gè)規(guī)則:接口中的方法在實(shí)現(xiàn)類中都要寫(xiě)出來(lái),而這里卻沒(méi)有,所以大家應(yīng)該注意到了,子類A中卻沒(méi)有,這是因?yàn)楦割悓?shí)現(xiàn)了這個(gè)方法。所以,只要父類中存在接口中的方法,只要沒(méi)必要改動(dòng),就可以不用override了。
當(dāng)然,可能你想問(wèn)的不是這個(gè),可以繼續(xù)討論。
方法上:理解接口首先理解抽象類,接口里面的方法是抽象方法(沒(méi)有方法體的方法),接口是一種規(guī)范,特殊的抽象類。繼承了接口就要實(shí)現(xiàn)里面方法(所有的方法)。相當(dāng)于一種強(qiáng)制性的規(guī)定。而繼承父類就看你用哪個(gè)方法就重寫(xiě)那個(gè)方法。屬性上:接口中只有常量。
實(shí)現(xiàn)接口,就必須覆蓋實(shí)現(xiàn)接口的方法。
而繼承就不一定覆蓋父類中的方法呀還有接口和類本身就有區(qū)別
同時(shí)實(shí)現(xiàn)多個(gè)接口,用implements關(guān)鍵字就行了,多個(gè)接口間用,連接
你想問(wèn)的是不是子類繼承和接口實(shí)現(xiàn)的區(qū)別???
舉報(bào)
課程升級(jí)!以終為始告別枯燥,在開(kāi)發(fā)和重構(gòu)中體會(huì)Java面向?qū)ο缶幊痰膴W妙
2 回答接口可以繼承父類嗎?
2 回答繼承父類實(shí)現(xiàn)接口的語(yǔ)法
3 回答父類、抽象類、接口如何區(qū)分?
4 回答能否有多個(gè)子類繼承同一個(gè)父類
2 回答在同一個(gè)類里,如何實(shí)現(xiàn)繼承呢
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號(hào)-11 京公網(wǎng)安備11010802030151號(hào)
購(gòu)課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號(hào)
2016-10-18
你可以有多個(gè)干爹(接口),但只能有一個(gè)親爹(?繼承)
2016-09-22
我覺(jué)得你的問(wèn)題問(wèn)得很糟糕,讓我感覺(jué)都不清楚你在問(wèn)什么。你首先得吧自己要提出的問(wèn)題說(shuō)清楚。我們才能解答。不過(guò)根據(jù)我的猜測(cè),你可能是想問(wèn)子類實(shí)現(xiàn)了接口和繼承父類時(shí),對(duì)于方法的調(diào)用問(wèn)題吧。
public?interface?IA?{ ???? ????public?void?out(); ???? } public?class?SA?{ ???? ????public?void?out()?{ ????????System.out.println("SA"); ????} } public?class?A?extends?SA?implements?IA?{ ???? ????public?static?void?main(String[]?args)?{ ????????new?A().out(); ????} }你會(huì)發(fā)現(xiàn)輸出結(jié)果是SA。
可見(jiàn)子類中的out()方法是從父類來(lái)的。
注意:實(shí)現(xiàn)接口有個(gè)規(guī)則:接口中的方法在實(shí)現(xiàn)類中都要寫(xiě)出來(lái),而這里卻沒(méi)有,所以大家應(yīng)該注意到了,子類A中卻沒(méi)有,這是因?yàn)楦割悓?shí)現(xiàn)了這個(gè)方法。所以,只要父類中存在接口中的方法,只要沒(méi)必要改動(dòng),就可以不用override了。
當(dāng)然,可能你想問(wèn)的不是這個(gè),可以繼續(xù)討論。
2016-09-18
方法上:理解接口首先理解抽象類,接口里面的方法是抽象方法(沒(méi)有方法體的方法),接口是一種規(guī)范,特殊的抽象類。繼承了接口就要實(shí)現(xiàn)里面方法(所有的方法)。相當(dāng)于一種強(qiáng)制性的規(guī)定。而繼承父類就看你用哪個(gè)方法就重寫(xiě)那個(gè)方法。屬性上:接口中只有常量。
2016-09-18
實(shí)現(xiàn)接口,就必須覆蓋實(shí)現(xiàn)接口的方法。
而繼承就不一定覆蓋父類中的方法呀
還有接口和類本身就有區(qū)別
同時(shí)實(shí)現(xiàn)多個(gè)接口,用implements關(guān)鍵字就行了,多個(gè)接口間用,連接
2016-09-18
你想問(wèn)的是不是子類繼承和接口實(shí)現(xiàn)的區(qū)別???