|
| 1 | +package com.github.shinharad.gettingStartedWithScala3 |
| 2 | +package traitParametersPart2 |
| 3 | + |
| 4 | +import scala.util.chaining.* |
| 5 | + |
| 6 | +//--- |
| 7 | +// 番外編 |
| 8 | + |
| 9 | +trait Greeting(val name: String): |
| 10 | + def msg = s"How are you, $name" |
| 11 | + |
| 12 | +trait FormalGreeting extends Greeting: |
| 13 | + override def msg = s"How do you do, $name" |
| 14 | + |
| 15 | +// コンパイルエラー |
| 16 | +// class A extends FormalGreeting |
| 17 | + |
| 18 | +class B extends Greeting("Bob"), FormalGreeting |
| 19 | +class C extends FormalGreeting, Greeting("Bob") |
| 20 | + |
| 21 | +// コンパイルエラー |
| 22 | +// trait FormalGreeting2(val name: String) extends Greeting: |
| 23 | +// def msg = s"How do you do, $name" |
| 24 | + |
| 25 | +trait FormalGreeting3(override val name: String) extends Greeting: |
| 26 | + override def msg = s"How do you do, $name" |
| 27 | + |
| 28 | +class D extends FormalGreeting3("Bill"), Greeting("Bob") |
| 29 | +class E extends Greeting("Bob"), FormalGreeting3("Bill") |
| 30 | + |
| 31 | +// コンパイルエラー |
| 32 | +// class F extends FormalGreeting3("Bill") |
| 33 | +// class G extends FormalGreeting3, Greeting("Bob") |
| 34 | + |
| 35 | +// コンパイルエラー |
| 36 | +// trait FormalGreeting4(override val name: String) extends Greeting(name): |
| 37 | +// override def msg = s"How do you do, $name" |
| 38 | + |
| 39 | +@main def no1(): Unit = |
| 40 | + println("-" * 50) |
| 41 | + |
| 42 | + (new B).msg.tap(println) |
| 43 | + (new C).msg.tap(println) |
| 44 | + // => How do you do, Bob |
| 45 | + |
| 46 | + println("-" * 10) |
| 47 | + |
| 48 | + (new D).msg.tap(println) |
| 49 | + (new E).msg.tap(println) |
| 50 | + // => How do you do, Bill |
| 51 | + |
| 52 | + println("-" * 50) |
0 commit comments