由於我們現在在接口中擁有默認方法,是不是更像是抽象類和非抽象方法?當涉及到實際使用時,我們可以交換使用接口和抽象類嗎?是否有任何情況下兩者之間的差異仍然相關?推斷在接口中使用Default方法使它像Java中的抽象類一樣正確嗎?
3
A
回答
8
是的,有些情況下兩者之間的差異仍然相關。
- 接口不能有字段(除了靜態字段)。
- 接口不能有構造函數。
- 接口不能有最終的方法。
- 接口不能有非公共方法。
第一點是真正阻止您使用類似界面的界面。所有其他的都可以解決(儘管它可能很難看)。
3
您仍然無法擴展2個抽象類,但可以實現多個接口。
0
整理。關鍵的區別在於抽象類是類,因此具有可以封裝狀態並具有在該狀態下操作的具體方法的優點。接口不能有狀態,因此默認方法只能用其他接口方法進行操作。
0
我已經提出了immibis的答案。但我個人認爲,有幾件事讓我們決定使用哪一種,抽象類或接口。 抽象類具有一些接口沒有的特定功能。就像,接口不允許你在抽象類允許的地方描述它裏面的任何方法。此功能會產生差異。
,如果你想請去深入這個職位的詳細信息...
http://javacodingtutorial.blogspot.de/2013/10/interface-vs-abstract-class.html
相關問題
- 1. 正確使用接口和抽象類
- 2. 抽象類是否像接口一樣使用StructureMap?
- 3. PHP摘要;這是使用抽象類的正確方法嗎?
- 4. 這是使用抽象類(C++)數組的正確方法嗎?
- 5. 使用的Java [接口/抽象類]
- 6. C#接口中的方法,抽象類
- 7. Java抽象類,接口,方法覆蓋
- 8. 可以省略C#中抽象類中的接口方法嗎?
- 9. java中的接口中的抽象類
- 10. 正確使用抽象類
- 11. 抽象類或接口。哪種方法是正確的?
- 12. 使用第三方抽象類就好像它是一個接口?
- 13. 抽象類和接口在Java中
- 14. 正確使用抽象方法
- 15. 抽象類的抽象方法與java中接口的抽象方法的區別
- 16. 調用抽象類方法中的接口方法
- 17. 當我需要在Java中使用抽象類和接口?
- 18. 在Java中,何時應該在接口中使用抽象方法?
- 19. 在webforms中使用實體框架的正確抽象方法
- 20. 抽象類使用它自己的抽象方法?
- 21. 接口中的抽象類?
- 22. 在抽象類中使用抽象類時如何實現抽象方法
- 23. 正在調用抽象方法中常用的方法嗎?
- 24. 無法在接口方法中創建抽象類的實例
- 25. 這是一種使用面向對象方法的抽象類的正確方法嗎?
- 26. 使用抽象類方法
- 27. 推斷一個方法的堆棧內存在Java中使用
- 28. 我們可以在抽象類中使用靜態方法嗎?
- 29. 使用接口的正確方法?
- 30. 爲什麼我們在java中使用抽象類和抽象方法
我想你已經錯過了問題的要點。使用新的默認方法,可以在接口中描述任何方法。 – bornfree