traits.scala
来自「JAVA 语言的函数式编程扩展」· SCALA 代码 · 共 41 行
SCALA
41 行
object Test { type Color = int; trait Shape { override def equals(other: Any) = true } trait Bordered extends Shape { val thickness: int; override def equals(other: Any) = other match { case that: Bordered => this.thickness == that.thickness case _ => false } } trait Colored extends Shape { val color: Color; override def equals(other: Any) = other match { case that: Colored => this.color == that.color case _ => false } } trait BorderedColoredShape extends Shape with Bordered with Colored { override def equals(other: Any) = other match { case that: BorderedColoredShape => ( super.equals(that) && super[Bordered].equals(that) && super[Colored].equals(that)) case _ => false } } val bcs1 = new BorderedColoredShape { val thickness = 1; val color = 0; } val bcs2 = new BorderedColoredShape { val thickness = 2; val color = 0; } Console.println(bcs1 == bcs1); Console.println(bcs1 == bcs2)}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?