導航:首頁 > 編程語言 > java繼承和介面

java繼承和介面

發布時間:2022-03-06 20:40:50

A. java 實現介面和繼承有什麼區別

首先的話,在 Java 中應該說「擴展」(extend)而不是「繼承」(inherit),盡管知道它實現上就是C++那種繼承,但邏輯上是不完全相同的。
再考慮到介面即協議,對介面的擴展,或是說對協議的擴展,實際上就包括了對其公用方法的擴展以及對其定義的擴展兩個方面,其中擴展介面定義實際上即為對協議添加更多的約束,在減少了其可能包含的類的種類的同時也給了這些類更清晰的定義,也就允許用戶基於這更清晰的定義做出更多的操作了。
所以呢,實際類的擴展實際上和繼承是相同的,子類確實繼承了父類的實現,但介面的擴展則只會獲取到父介面的方法聲明,繼承的意味並不明顯,更多的實際上在於對其原協議的擴展,因此應將子介面和父介面間的關系視為擴展而不單單是繼承
其實就是多去思考為什麼在Java這叫擴展不叫繼承,很多問題就迎刃而解了

B. 介面是否可繼承介面(java)

Java語法中,介面可以繼承介面,抽象類可以實現介面,抽象類可以繼承實體類。

Java語法中,使用interface定義一個介面,使用class定義一個類,使用關鍵字abstract + class定義一個抽象類。以下分別對這3個知識點進行解析:

1、介面可以繼承介面

介面可以多繼承介面,例如:Interface1 Extends Interface2, Interface3, Interface4……

代碼示例為:

public interface Interface1 {

public void method1();

}

public interface Interface2 extends Interface1 {

public void method2();

}

public interface Interface3 extends Interface1, Interface2 {

public void method3();

}

(2)java繼承和介面擴展閱讀:

1、Java繼承或實現介面時需要遵循的原則:

(1)類優先於介面。 如果一個子類繼承的父類和介面有相同的方法實現。 那麼子類繼承父類的方法。

(2)子類型中的方法優先於父類型中的方法。

(3)如果以上條件都不滿足, 則必須顯示覆蓋/實現其方法,或者聲明成abstract。

2、Java實現多繼承的方式:

(1)Java中一個類不能繼承多個具體class。

(2)一個類只可繼承自一個具體 class,但可實現多個介面。 interface不涉及到實現細節,不與任何存儲空間有關連。新類可繼承自一個具象class,其餘繼承都得是interfaces。

(3)outer class不可繼承自多個具體class,可在其內部設多個inner class,每個inner class都能各自繼承某一實現類。inner class不受限於outer class是否已經繼承自某一實現類。

(4)inner class可以說是多重繼承問題的完整解決方案。一個類不能繼承自多個一般類。但我們可以讓其內部的多個inner class各自繼承某一實現類達到類似的目的。

C. JAVA繼承和介面

舉個例子

首先我有一個介面叫做SaveUserService,裡面有個方法較public void save()然後我又寫了一個JDBCSaveUserImpl實現上述介面,這樣我必然要重寫這個save方法,由於方法名我定義了腳JDBC我必然要在代碼裡面寫上各種連接語句(沒有那麼變態的寫了jdbc不用jdbc編程的)

而我在客戶端一側的所謂試圖層如果要保存用戶信息自然要調用save方法,這個時候我要先聲明一個SaveUserService介面的引用然後給他賦值成JDBCSaveUserImpl的實例,也就是new JDBCSaveUserImpl();(當然正式項目不會這么new,一定會用各種模式比如工廠模式,或者spring的IoC把這個實力注入進來)

調用的時候自然用的是JDBCSaveUserImpl裡面的save方法,但是現在需求變了,要用Hibernate來連資料庫,怎麼辦?自然是寫一個HibernateSaveUserImpl里同樣實現上述的介面,這時候save方法裡面就寫hibernate的內容了,然後在修改spring的配置文件讓Ioc注入新的實現類實例

哇,前台的各層裡面內容一點都不用改,這不就是傳說中的高內聚,松耦合,提高代碼的重用性么?如此happy並且偷懶的方法自然要廣泛弘揚了

這里只舉了一個類的例子,設想下如果是300個功能的大系統,如果你的領導萬一哪天抽風要換實現方式,難道你每個類都改?300個功能可能會調用上千次實例,每個都改必然是死定了,天天加班到12點,但是如果用了spring加介面加多層架構,你只需要改中間某些層然後修改下spring的配置文件就ok了

如果都這么說了還沒明白就繼續學,學到完整做個工程時候就明白了

D. Java中,介面繼承介面時,用implements與extends有什麼區別

介面既可以繼承其他介面但不能實現其他介面。
也就是說你可以這些寫:
public interface secondInterface extends FirstInterface
但是你絕對不能這么寫:
public interface Collection implements Iterable<T>
介面無法實現另外一個借口,只有類才會實現介面。

E. java繼承和介面的區別

1,一個類只能繼承一個類,但是可以實現多個介面。
2,依賴倒轉原則: 依賴抽象(例如介面),不要依賴於實現。
3,合成/聚合復用原則(CARP): 盡量使用合成/聚合,而不是繼承關系達到復用的目的。
4,介面傳達的意思是:擁有某種功能,能幹嘛,比如:Serializable代表可序列化的。
5,繼承傳達的是意思是:is-a,比如:貓 是一個 動物,貓就是動物的子類。

F. java中繼承與實現介面的區別與聯系是什麼啊知道的說一下,我這里謝謝了。

繼承是子類繼承父類的方法,欄位等,只能單繼承,實現介面是實現父類定義好的一些未實現的方法,然後在子類實現,可以多實現

G. java 介面和繼承的區別

有一定的相似性,但從根本上來說是不同的。。。

繼承的意思就是多種類型的事務抽象出的一種共性,繼承了這個父類的子類就可以不再重寫共性的方法、屬性,可以直接使用;
而介面的目的在於定義一個規則,大家來實現這個介面,就是必須滿足這些給點的規則。。。

H. Java中繼承和介面的區別

暈。ls幾位就對介面這么理解啊??
繼承體現父子關系,父親有的兒子也有,代碼重用率高。
而介面往往是反向用的。舉個例子就明白了。
例如我們要建立兩輛車的類,並提供相同的方法。
先建立一個車的介面,提供一個s()方法。
interface car{
public void s();
}
接著建立兩個具體的車的類,實現這個介面:
class benz() implements car{
public void s(){
System.out.println("This is a benz!");
}
}
class ford() implements car{
public void s(){
System.out.println("This is a ford!");
}]}
public class test{ //建立主類
public static void main(String args[]){
//如果沒有介面,我們要生成不同的車就麻煩了,要寫大堆的判斷代碼,這個例子體現不出來。
//我們可以直接利用介面生成車
例如:
car car1=new benz();
car1.s(); /直接用car生成車就成了,不用去判斷到底是什麼車。有個很經典的例子我已經搞忘了。
car car2=new ford();
car2.s();
}
}

如果對您有幫助,請記得採納為滿意答案,謝謝!祝您生活愉快!

vaela

I. Java繼承和介面

你好,飛行應該是介面,動物是人和鳥的父類,人是超人的父類,鳥和超人實現飛行的介面

J. java中介面與介面之間是繼承還是實現

介面與介面之間只能是繼承,不能是實現,要實現介面需要定義一個類來實現這個介面,並且這個類必須重寫這個介面的所有方法。而實現介面時,一次則可以實現多個介面。希望可以幫助到你,望採納!

閱讀全文

與java繼承和介面相關的資料

熱點內容
優信二手車解壓後過戶 瀏覽:62
Windows常用c編譯器 瀏覽:778
關於改善國家網路安全的行政命令 瀏覽:833
安卓如何下載網易荒野pc服 瀏覽:654
javainetaddress 瀏覽:104
蘋果4s固件下載完了怎麼解壓 瀏覽:1003
命令zpa 瀏覽:286
python編譯器小程序 瀏覽:945
在app上看視頻怎麼光線調暗 瀏覽:540
可以中文解壓的解壓軟體 瀏覽:593
安卓卸載組件應用怎麼安裝 瀏覽:913
使用面向對象編程的方式 瀏覽:340
程序員項目經理的年終總結範文 瀏覽:930
內衣的加密設計用來幹嘛的 瀏覽:433
淮安數據加密 瀏覽:292
魔高一丈指標源碼 瀏覽:982
松下php研究所 瀏覽:168
c回調java 瀏覽:401
夢幻端游長安地圖互通源碼 瀏覽:746
電腦本地文件如何上傳伺服器 瀏覽:314