我想模拟象棋游戏。
为此,我想创建一个抽象类Piece
,该类将播放器和位置作为参数。由此,我想扩展到其他类,例如Pawn
:
trait Piece(player: Int, pos: Pos) = {
def spaces(destination: Pos): List[Pos]
}
case class Pawn extends Piece = {
//some other code
}
但是,我认为我不允许将参数传递给特征,例如
trait Piece(player: Int, pos: Pos)
。那么,如何有一个包含字段的抽象类
Piece
? 最佳答案
您可以使用抽象类
abstract class Piece(player: Int, pos: Pos) {
...
}
case class Pawn(player: Int, pos: Pos) extends Piece(player, pos)
或者(可能更好),您可以在特征中抽象地定义这些成员
trait Piece {
def player: Int
def pos: Pos
...
}
case class Pawn(player: Int, pos: Pos) extends Piece
关于scala - 将参数传递给特征,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38993974/