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 + -
显示快捷键?