我在閱讀Java 8中的接口時遇到了這個主題,有些場景我們使用默認或靜態關鍵字在接口中定義方法,允許下一個孩子重新定義相同的方法或實現它。這是否意味着多重繼承?還有一個問題,我發現返回類型必須是協變類型的其他編譯問題,這意味着它仍然不支持多重繼承?我們可以說java支持多重繼承嗎?讓我知道關於這個主題的更多細節。Java 8支持多重繼承嗎?
回答
這是否意味着多重繼承?
對於接口,是的,但不是類。通常人們會想到類,因爲只有類可以有字段和構造函數。這與Java 1.0沒有什麼不同
返回類型必須是協變類型的其他編譯問題,這意味着它仍然不支持多繼承?
協變返回類型的需求與是否有多重繼承無關。
我們可以說java支持多重繼承嗎?
對於接口,是的。
如果我們編寫具有相同默認方法但具有不同返回類型的2個不同接口,則Java預計返回類型在實現類中是協變類型。沒有協變類型,Java會引發編譯錯誤。但是爲了使它支持多重繼承,返回類型可能不同。我們可以使用靜態方法使我們的Java支持多繼承。仍然有一個問題,我們實際上不得不追加Parent接口來使用它的靜態方法... –
@ShaikhNizamuddin如果你有兩個返回不兼容類型的方法,開發人員給這些方法命名可能會讓人困惑。我建議給出不同的名稱,因此開發人員使用它應該期望得到什麼結果是明確的。 –
對於具有不同返回類型的方法,使用不同的名稱是很好的做法。也許在即將到來的Java版本中(有點假設,樂觀),我們可以看到這種協變類型是非模糊的。 :) –
接口,, Interface..all的方式..謝謝
大小寫仍然存在不明確性返回類型不匹配,爲了支持多繼承,Java需要返回類型爲協變類型。但用戶可以自由選擇他自己的返回類型... –
- 1. 多重繼承的支持
- 2. Djinni支持Java繼承嗎?
- 3. Java不支持多繼承嗎?
- 4. C#是否支持多重繼承4.0?
- 5. 視圖支持繼承嗎?
- 6. Go支持繼承嗎?
- 7. 爲什麼java不支持多繼承?
- 8. 爲什麼Java不支持多繼承?
- 9. PHP7並支持多重繼承?
- 10. 支持繼承
- 11. dotnet不支持多繼承。但多接口支持?
- 12. Java的多重繼承ActionBarActivity
- 13. Java:替代多重繼承
- 14. 爲什麼C#不支持多繼承?
- 15. does protobuf-net支持多接口繼承
- 16. 爲什麼vb.net不支持多繼承?
- 17. 紅寶石支持多繼承
- 18. E語言是否支持多繼承?
- 19. 是否支持CSS繼承
- 20. OpenLDAP是否支持繼承?
- 21. Julia不支持抽象多重繼承有什麼根本原因嗎?
- 22. 對象腳本是否支持多重繼承?
- 23. 爲什麼C#doen't支持多重繼承
- 24. 確實javascript支持多重繼承,比如C++
- 25. 多重繼承不能在C#中支持。爲什麼?
- 26. 多重繼承
- 27. 多重繼承
- 28. 多重繼承()
- 29. 多重繼承
- 30. 多重繼承
@Draken我不認爲其他問題真的回答他的問題 - 作爲問題並非在界面內談論的Java 8和默認的實現所有。 – GhostCat
混淆在於繼承這個詞的用法,從技術上說,繼承只能用於擴展類,而不能用於接口。所以我們不能做多重繼承,但可以做多重實現。我覺得在這個問題上的進一步閱讀將有助於更多 – Draken
是的,你是對的@Jägermeister –