私はこの小さなScalaサンプルを作成し、より良い特性を理解しました。Scala Traitsはどのように動作しますか?
trait Writer {
def write(value: Int): Unit = {
print("Writer")
}
}
trait Hdd extends Writer {
override def write(value: Int): Unit = {
print("Hdd")
}
}
trait File extends Writer {
override def write(value: Int): Unit = {
print("File")
}
}
class TestClass extends App {
(1) val myWriter = new Writer with Hdd // This line looks fine
(2) val myNewWriter = new Writer // This line fail
}
私の理解では、Traitをインスタンス化することはできません。このため、line(2)は失敗しています。
私が理解できない何らかの理由で、ライン(1)がうまく見えます。
これはどのように可能ですか?
よろしくお願いします –