java中的介面為什麼可以多繼承而其他類則不能實

2021-08-14 23:56:27 字數 542 閱讀 7897

1樓:

類定義屬性和方法 描述某一類事物的抽象

而介面定義的是行為 並不限於任何具體意向。

按照邏輯上來說 單繼承更明確 一個子類就應該是其父類代表的事物中的某個更具體的類別 不應該即是這種東西又是那種東西 。

而從實用角度上來說 單繼承易讀 易維護 語義清晰 邏輯清楚。

而介面則不同 介面只定義一些公共行為 比如有兩個介面 一個定義了跑這個動作 另一個定義了走這個動作 人這個類就可以同時實現這兩個介面所定義的行為 。

類對介面的implements稱作實現 不能叫做繼承 。

當然 介面可以多繼承介面 因為介面只定義行為 並不包含類別的含義 不指代具體的某類事物 而且 從語義上來說 介面對介面的繼承稱之為擴充套件更為合適。

2樓:鵬哥丶最強啊

介面是抽象的概念,而類就是一個個鮮活的物件,所謂萬物皆物件。還有一種說法就是,類的單繼承可提高安全性。。。。

3樓:淮濱網

這是jdk裡面定義的,為法律就編譯通不過,這樣是為了安全性。

JAVA介面中的實現問題

哥們,這是不行的。反過來想。如果這樣可以。你現在用一個物件來呼叫這個方法。物件.race 哥們,你清楚你自己是打算幹什麼嗎?要int的返回值還是void的?是啊,你自己都不清楚?那計算機不是更不知所措。一個類可以同時實現n個介面,但你寫的兩個介面存在同名的方法,所以你只需更改其中介面的方法名就可以了...

在Java介面A的實現類B中如何呼叫A中的變數

1.num有歧義 不表示哪一個num 2.會3.介面b的實現類c吧 因為介面中的變數都是public static 的,用b.num試試 1 介面中你寫實現在繼承類?繼承下來當然報錯 the field num is ambiguous 2 介面中的變數 1 會得到但是前提是隻繼承b不能中間加個a ...

java中string為什麼不可變

string操作的是位元組序列 字串長量 而不是字串,所以不可以修改 刪除 替換字元常量中的某個字元 需要理解string中有一個pool 池 還有string a name 其實是這樣的 string a new string name 上網查查詳細資料就能來理解了。string 是物件不是原始型...