我理解多态性意味着什么,但是如果不使用它,我很难理解出现的问题。有人可以向我解释一下吗?
答案 0 :(得分:2)
基本概念是代码重用。通过接口和抽象/基类在.NET中实现多态性。假设您有Cat
类,其中Speak()
方法输出“MEOW!”并且说您在整个应用程序中使用此类作为类型Cat
。现在,如果有一天你需要使用Dog
类替换所有带有狗的猫,他们使用Speak()
方法输出“WOOF!”您需要做大量的手动工作才能将Cat
的所有实例替换为Dog
。如果您需要一种可以让Cat
或Dog
说话的方法,该怎么办?那么你需要大量的复制粘贴锅炉板冗余代码。
想象一下,您编写代码Cat : ISpeak
和Dog : ISpeak
,其中ISpeak
是一个公开Speak()
方法的接口。现在你根本没有返工,只要你对所有类型的声明使用接口类型,就可以愉快地在Cat
,Dog
和其他可以说的东西之间切换。