我想,當一個類實現一個接口,它是說,它「可以做」什麼在interface.I定義我也下印象是「是」或符號「類型」是類層次結構,這意味着一類從超類繼承。我的理解是否正確?通過實現一個接口,類是否成爲該接口的「類型」?
0
A
回答
3
從標題的問題,我會說沒有。
已經有答案說是通過閱讀它指出了Java語言規範在使用的instanceof,但顯示這一點。
兩個參考類型,如果相同的運行時類型: 他們都是類或兩種接口類型,是由同一個類加載器定義,並具有相同的二進制名稱
而且一實現接口的類將不會收到接口的二進制名稱。
2
是。這從使用instanceof
運營商是顯而易見的:
interface I { } class A implements I { } ... static boolean isAnI(Object obj) { return (obj instanceof I); }
這裏,呼籲isAnI(new A())
將返回true
。
編輯:理解題意後好轉,我認爲這歸結爲正式定義-A在Java中。維基百科有關一般OO定義的文章here。從這個基於繼承層次的角度來看,我會將我的答案改爲否,同意Farmor的答案。
1
我不能完全肯定我明白你的問題。但是,接口確實說明了類「可以做什麼」,但是您也可以投射該接口的對象並運行接口的方法。工作中的多態性。
相關問題
- 1. 測試通用類型實現接口並使用該接口
- 2. 查明一個類型是否實現了通用接口
- 3. 檢查一個接口是否在編譯時通過一個類型實現
- 4. 類設計:類實現接口實現另一個接口
- 5. 對象的接口,但約束類型上實現該接口
- 6. C#如何檢查一個類是否實現泛型接口?
- 7. 實現接口到一個類:接口到接口
- 8. 接口是否被認爲是實現它的類的父類?
- 9. 打開通用接口類型的開放實現不等於接口類型?
- 10. 你會爲2個類實現一個類或2個接口的接口嗎
- 11. 檢查類是否實現接口
- 12. TypeScript - 檢查類是否實現接口
- 13. 將接口實例分配給實現該接口的類
- 14. 通用類型從實現中的泛型類型的接口
- 15. 如何判斷一個類是否是java接口的實現
- 16. 如何檢查是否一個類實現一個接口
- 17. 如果一個類實現了一個接口,並被分配給一個具有該接口類型的變量,那麼該對象的類型是什麼?
- 18. 創建一個實現接口的類
- 19. 哪個接口一個類實現?
- 20. 是一個被認爲是實現的超類的接口嗎?
- 21. 擴展已經實現接口的抽象類的類是否需要接口?
- 22. Golang檢查接口類型是否爲
- 23. 檢查類型是否爲接口
- 24. 如何實現一個IEnumerable類型爲<IA>的屬性的接口,並使用實現該類型接口的類型進行覆蓋?
- 25. 如何檢查類類型,看看它是否實現了一個接口
- 26. 查詢實現一個通用接口的類的泛型類型定義
- 27. 實施接口錯誤:類不實現接口成員
- 28. 在Java中,如果一個類實現了一個接口,是否需要編譯該接口?
- 29. Typescript類使用接口作爲類型而不是實現
- 30. 找出一個泛型類型實現一個接口
基於這裏的文章:http://codeofdoom.com/wordpress/2009/02/12/learn-this-when-to-use-an-abstract-class-and-an-interface/。它說當一個類擴展一個抽象類時,它建立了「是A」關係,但是它與接口建立了「可以做」關係。如果抽象類和接口都建立「IS A」關係,那麼接口的用法是什麼?讓我們不要進入多重繼承和其他基本的東西.... – user325643
不知道爲什麼這是downvoted。人們至少應該評論。 –