我明白多態是什麼意思,但我很難理解如果不使用它會出現的問題。有人可以向我解釋嗎?在缺乏多態性的實現中可能會出現什麼問題?
0
A
回答
2
基本概念是代碼重用。在.NET中通過接口和抽象/基類實現多態性。假設你有一個Cat
類,它有一個輸出「MEOW!」的Speak()
方法。並說你在你的應用程序中使用這個類作爲類型Cat
。現在,如果有一天您需要使用Dog
班級替換所有帶有Dogs的貓,該班級擁有輸出「WOOF!」的Speak()
方法。您將要進行大量的手動工作來將Cat
的所有實例替換爲Dog
。如果您需要一種可以讓Cat
或Dog
說話的方法?那麼你需要大量的複製粘貼鍋爐冗餘代碼。
想象一下,您代碼Cat : ISpeak
和Dog : ISpeak
其中ISpeak
是一個暴露Speak()
方法的接口。現在,您根本不需要返工,只要對所有類型聲明使用接口類型,就可以愉快地在Cat
,Dog
和其他可以說話的事情之間切換。
+0
謝謝,我明白了! – user2294616
相關問題
- 1. 這可能會出現什麼問題?
- 2. 使用過多的livequery可能會出現性能問題
- 3. 缺乏實現_read in stream.Readable
- 4. 使用D1和dll可能會出現什麼問題?
- 5. 可能會出現什麼問題? FOPEN錯誤
- 6. Bazaar 2.x VCS可能會出現什麼問題?
- 7. 這個HTTP緩存方案可能會出現什麼問題?
- 8. 多態實現問題
- 9. Guido在python中實現Super時出現了什麼問題?
- 10. 什麼時候出現多態性
- 11. 使用OpenMP會出現什麼問題?
- 12. 爲什麼會出現轉換問題
- 13. iOS - 我的heightForRowAtIndexPath實現導致性能問題,爲什麼?
- 14. 在此處未鎖定寫入操作時可能會出現什麼問題?
- 15. 打開/關閉很多MySQL連接會出現什麼問題?
- 16. 可能會在儀表板中出現問題?
- 17. 訪問Microsoft.Office.Core.DocumentProperties時出現性能問題
- 18. Swift在開發時缺乏動態功能有什麼影響?
- 19. 爲什麼會出現在
- 20. DataGriViewCheckBox可能會出現髒狀態?
- 21. 我的quicksort實現有什麼問題?
- 22. 我的gen_server實現有什麼問題?
- 23. 我的dfs實現有什麼問題?
- 24. 我的QuickSort實現有什麼問題?
- 25. 爲什麼類別中的didRotateFromInterfaceOrientation會導致UISplitView出現問題?
- 26. 實現實時多人遊戲有什麼樣的問題
- 27. 使用DesignerProperties.GetIsInDesignMode(...)可能出現的問題?
- 28. 在使用GCD時可能出現什麼問題dispatchAfter()在這個用例中
- 29. 爲什麼NilClass#to_hash缺乏?
- 30. respose.sendredirect問題 <p>請告訴可能出現什麼問題</p>
代碼複製彈出想到 – EyeOfTheHawks