【发布时间】:2020-09-25 09:04:06
【问题描述】:
我正计划使用类和其他OOP技术制作一个2d棋盘游戏。我对 polymorphism 了解一些,并且想知道 polymorphism 中使用的技术是否可以通过 composition 将职责从基类委托给子类。
[已编辑] 棋盘上有玩家。我想多态地调用两个玩家中定义的方法函数 move ,而不必说 player1.move(), player2.move()
【问题讨论】:
-
您能举个例子吗?通过组合实现多态性是什么意思?
-
"并且想知道多态性中使用的技术是否可以通过组合将职责从基类委派给子类。" 不正是这样吗Composite Pattern 描述?
-
一个棋盘有玩家,我想多态地告诉两个玩家移动他们的棋子而不必说 player1.move() 和 player2.move()
-
如果两种最常用的技术不能一起工作,那就太糟糕了。请给我们一些代码。任何例子都可以,但没有“是”是唯一的答案
-
当然。您可以使用
virtual方法从基类引用中调用派生/子类的方法,这与它在Java 中的工作方式相同。您不需要它来使用组合原理来构建数据,但它就在那里。
标签: oop polymorphism composition