尝试尽可能简单地描述多态

如何以一种易于理解的方式描述多态?


我们可以在Internet和书籍上找到很多有关该主题的信息,例如Type polymorphism。但是,让我们尝试使其尽可能简单。


江户川乱折腾
浏览 589回答 3
3回答

海绵宝宝撒

每个带有简单弹出盖的罐子都以相同的方式打开。作为人类,您知道可以找到任何可以打开的对象。打开后,并非所有的罐子的行为都相同。有些包含坚果,有些包含冒出来的假蛇。结果取决于罐的类型,如果罐是“ CanOfNuts”或“ CanOfSnakes”,但这与如何打开它无关。您只知道可以打开任何罐头,并且会根据您打开的罐头类型确定某种结果。pUnlabledCan-> Open(); //可能会给坚果,可能会给蛇。直到我们叫它才知道Open()的通用返回类型为“ Contents”(或者我们可能决定不返回类型),因此open始终具有相同的函数签名。您(人类)是用户/呼叫者。Open()是虚拟/多态函数。“可以”是抽象的基类。CanOfNuts和CanOfSnakes是“ Can”类的多态子代。每罐可打开,但具体是什么它做什么具体的塔伊的内容通过某种可它是什么,它返回的定义。看到pUnlabledCan时,您所知道的就是可以Open()它,它将返回内容。其他任何行为(例如您的脸上弹出蛇)都由特定的Can决定。
打开App,查看更多内容
随时随地看视频慕课网APP