JAVA里 實(shí)現(xiàn)和繼承的區(qū)別 說白話點(diǎn) 謝謝
JAVA里 實(shí)現(xiàn)和繼承的區(qū)別 說白話點(diǎn) 謝謝
1,j
java中繼承和實(shí)現(xiàn)有什么區(qū)別,分別給程序帶來了怎樣的好處?請教~~
繼承式子類與父類的繼承,實(shí)現(xiàn)是接口的實(shí)現(xiàn)。使用繼承,可以減少代碼量,常用方法可以不必定義,而是直接繼承父類定義好了的方法,提高編程效率。
體現(xiàn)了軟件的三特性之一的可復(fù)用性。
使用接口,只定義方法,沒有具體的方法體,實(shí)現(xiàn)該接口的類可以對接口中的方法靈活的根據(jù)實(shí)際情況定義,很好的是程序具有靈活、復(fù)用的特性。
java 實(shí)現(xiàn)接口和繼承有什么區(qū)別
首先的話,在 Java 中應(yīng)該說“擴(kuò)展”(extend)而不是“繼承”(inherit),盡管知道它實(shí)現(xiàn)上就是C++那種繼承,但邏輯上是不完全相同的。再考慮到接口即協(xié)議,對接口的擴(kuò)展,或是說對協(xié)議的擴(kuò)展,實(shí)際上就包括了對其公用方法的擴(kuò)展以及對其定義的擴(kuò)展兩個(gè)方面,其中擴(kuò)展接口定義實(shí)際上即為對協(xié)議添加更多的約束,在減少了其可能包含的類的種類的同時(shí)也給了這些類更清晰的定義,也就允許用戶基于這更清晰的定義做出更多的操作了百科。
java里面的一個(gè)類繼承一個(gè)類和實(shí)現(xiàn)一個(gè)借口有什么區(qū)別 啊
繼承類和實(shí)現(xiàn)接口區(qū)別很大。 繼承一個(gè)類后父類的方法和特性可以被子類使用,比如魚有一個(gè)技能是游泳,那么小魚天生就會游泳。
實(shí)現(xiàn)一個(gè)接口需要實(shí)現(xiàn)此接口描述的的所有方法。
可以用插座做一個(gè)比喻,就是你想插入一個(gè)三眼的插座(三眼接口),那么你的插頭需要是三針的。
實(shí)現(xiàn)接口和類繼承的區(qū)別
理論上:類只能單繼承,接口可以多繼承(接口應(yīng)該叫實(shí)現(xiàn));實(shí)踐上:我們說類的繼承一般繼承的是事物的屬性,如:姓名,年齡,性別等,而接口的繼承(或者說實(shí)現(xiàn))一般是繼承事物的行為,如:行走,飛翔,游泳(這比較抽象,在一般項(xiàng)目中大部分是指對某事物的增刪改查等操作)總之,單繼承描述了“isa”的關(guān)系,即“子isa父”;多繼承描述了“cando”的關(guān)系,即“子cando父”。
java 多線程 繼承Thread和實(shí)現(xiàn)Runnable的區(qū)別
Java中線程的創(chuàng)建有兩種方式:
1、 通過繼承Thread類,重寫Thread的run()方法,將線程運(yùn)行的邏輯放在其中
2、 通過實(shí)現(xiàn)Runnable接口,實(shí)例化Thread類
Runnable 接口只有一個(gè)方法 run(),我們聲明自己的類實(shí)現(xiàn) Runnable 接口并提供這一方法,將我們的線程代碼寫入其中,就完成了這一部分的任務(wù)。但是 Runnable 接口并沒有任何對線程的支持,我們還必須創(chuàng)建 Thread 類的實(shí)例,這一點(diǎn)通過 Thread 類的構(gòu)造函數(shù)public Thread(Runnable target);來實(shí)現(xiàn)。
3、繼承Thread實(shí)現(xiàn)的模式是 定義多個(gè)線程,各自完成各自的任務(wù).?
4、實(shí)現(xiàn)Runnable實(shí)現(xiàn)的模式是 定義多個(gè)線程,實(shí)現(xiàn)一個(gè)任務(wù).
總結(jié):一個(gè)是多個(gè)線程分別完成自己的任務(wù),一個(gè)是多個(gè)線程共同完成一個(gè)任務(wù)。
其實(shí),在實(shí)現(xiàn)一個(gè)任務(wù)用多個(gè)線程來做也可以用繼承Thread類來實(shí)現(xiàn),只是比較麻煩,一般我們用實(shí)現(xiàn)Runnable接口來實(shí)現(xiàn)。