mixins.scala

来自「JAVA 语言的函数式编程扩展」· SCALA 代码 · 共 86 行

SCALA
86
字号
// $Id: mixins.scala 5359 2005-12-16 15:33:49Z dubochet $// Test 1: "super" coming from mixinsimport Console._;object Test1 {  class A {    def f = "A::f";  }  class B extends A {    override def f = "B::f";  }  trait M1 extends A {    override def f = "M1::" + super.f;  }  class C extends B with M1 {    override def f = super[M1].f;  }  def test(): Unit = {    val c = new C;    Console.println(c.f);  }}// Test 2: qualified "super" inside of the host classobject Test2 {  class M1 {    def f = "M1::f";  }  trait M2 {    def f = "M2::f";  }  trait M3 {    def f = "M3::f";  }  class Host extends M1 with M2 with M3 {    override def f = super[M1].f + " " + super[M2].f + " " + super[M3].f  }  def test(): Unit = {    val h = new Host;    Console.println(h.f)  }}// Test 3: mixin evaluation order (bug 120)object Test3 {  class A(x: Unit, y: Unit) {    Console.println("A");  }  trait B {    println("B");  }  class C extends A({ println("one"); }, { println("two"); })          with B {    println("C");  }  def test() = {    val c = new C();  }}// Main testing functionobject Test {  def main(args: Array[String]): Unit = {    Test1.test();    Test2.test();    Test3.test();  }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?