什么是多态性,它的用途是什么,它是如何使用的?
什么是多态性,它的用途是什么,它是如何使用的?
-
如果您考虑该术语的希腊词根,它应该变得显而易见。
- 多边形 = 多:多边形 = 多面,聚苯乙烯 = 多苯乙烯(a),多语言 = 多种语言,依此类推。
- Morph = 变化或形式:形态 = 研究生物形式,Morpheus = 希腊的梦之神,能够采取任何形式。
因此,多态性是(在编程中)为不同的底层形式(数据类型)呈现相同接口的能力。
例如,在许多语言中,整数和浮点数是隐式多态的,因为您可以加、减、乘等,而不管类型是否不同。通常,它们很少被视为对象。
但是,以同样的方式,类似
BigDecimal
or的类Rational
也Imaginary
可以提供这些操作,即使它们对不同的数据类型进行操作。经典的例子是
Shape
类和所有可以从它继承的类(正方形、圆形、十二面体、不规则多边形、splat 等)。使用多态性,这些类中的每一个都将具有不同的基础数据。一个点形状只需要两个坐标(当然假设它在二维空间中)。圆需要一个圆心和一个半径。正方形或矩形需要左上角和右下角的两个坐标以及(可能)旋转。一个不规则的多边形需要一系列的线。
通过让类对其代码和数据负责,您可以实现多态性。在这个例子中,每个类都有自己的
Draw()
函数,客户端代码可以简单地做:shape.Draw()
获得任何形状的正确行为。
这与代码与数据分离的旧方式形成鲜明对比,您将拥有诸如
drawSquare()
and之类的函数drawCircle()
。面向对象、多态性和继承都是密切相关的概念,了解它们至关重要。在我漫长的职业生涯中,有许多“灵丹妙药”基本上都以失败告终,但 OO
范式被证明是一个很好的范式。学习它,理解它,爱它——你会很高兴你做到了:-)
(a)我最初是把它写成一个玩笑,但结果证明它是正确的,因此并不那么好笑。单体苯乙烯恰好是由碳和氢制成的,而聚苯乙烯是由它们的基团制成的。
C8H8``(C8H8)n
也许我应该说息肉是这封信的多次出现,
p
尽管现在我不得不解释这个笑话,即使这看起来也不好笑。有时,您应该在落后时退出:-)
-
什么是动态多态性?
2020-12-26 关注 0 浏览92 1答案
-
Java继承和多态性之间的主要区别是什么?
2021-02-02 关注 0 浏览72 1答案
-
使用Collection接口创建ArrayList对象的多态性有什么好处?
2021-01-31 关注 0 浏览93 1答案
-
什么是 JSON,它的用途是什么?
2022-03-22 关注 0 浏览40 1答案
-
什么是REST/RESTful ?它的用途是什么?
2020-01-11 关注 1 浏览2359 1答案
-
Java中的动态和静态多态性有什么区别?
2021-02-02 关注 0 浏览75 1答案
-
为什么上播不显示运行时多态性?
2021-01-30 关注 0 浏览94 1答案
-
何时使用 @JsonProperty 属性以及它的用途是什么?
2022-05-26 关注 0 浏览22 1答案
-
参数多态性与Ad-hoc多态性
2021-01-30 关注 0 浏览99 1答案
-
什么是不透明响应,它的用途是什么?
2022-07-28 关注 0 浏览14 1答案