多态性不仅仅是继承的副作用吗?

Mar*_*ace 7 language-agnostic oop design-patterns

我刚刚学习oop并且正在努力解决继承和多态之间的差异.

如果我理解正确,继承定义了类型层次结构和类之间的关系.子类从父类继承行为,并且可以提供父级上任何公共接口的专门行为.

多态性是这些子类可以提供自己的行为,同时仍然遵循父接口.

这是不是一回事吗?

TMS*_*TMS 10

你是对的,在大多数OO语言中,继承和多态与其他语言相互依存.但:

  1. 多态性和继承都说明了不同的方面.Polymorhpism显示了类型在操作中如何彼此独立,而继承显示了类型之间的关系.
  2. 多态和继承不必走在一起一般.例如,如果你看整数和浮点数,它们都可以站在算术表达式的相同位置,所以它实际上是多态的,但是没有继承.此外,可以在没有多态的情况下进行继承.