我有两个继承自 Player 的类:SimplePlayer 和 InterleavedPlayer。
B类有这些方法:setPlayer(SimplePlayer player)和setPlayer(InterleavedPlayer player)
A 类有一个 Player 字段,它被设计为 SimplePlayer 或 InterleavedPlayer。A 类想要在这些玩家上调用 B.setPlayer(),而不关心对象是 Player 的子类。
我为子类重载了 B.setPlayer() 以避免在通用的 B.setPlayer(Player player) 方法中使用 instanceof。
但是在 A 调用 B.setPlayer() 时,我得到一个符号未找到错误,指的是 B.setPlayer(Player)。
我应该在这里使用什么设计方法来解决问题?(A 实际上创建了玩家,所以理论上它“知道”它传递给 B 的内容。但是,由于 A 不分青红皂白地对待它的玩家的方式,让一个玩家做事似乎是有意义的,而不是必须区分 SimplePlayer 和 InterleavedPlayer)。