削除された内容 追加された内容
Ef3 (トーク | 投稿記録)
タグ: 2017年版ソースエディター
Ef3 (トーク | 投稿記録)
→‎トレント: トレイト('''trait''')は、Javaインターフェース抽象クラスの中間的な存在です。 実装を持ったインターフェースで、コンストラクタのパラメータを持つことができませんが、ミックスイン(''mix-in'')することが出来ます。
タグ: 2017年版ソースエディター
890 行
 
== トレント ==
トレイト('''trait''')は、実装を持った[[Java]]の[[Java/インターフェースで、コ|イストラクのパラメタを持つこフェース]]ができませが、ミッ[[Java/抽象イン(''mix-in'')することが出来ま|抽象クラス]]の中間的な存在です。
実装を持ったインターフェースで、コンストラクタのパラメータを持つことができませんが、ミックスイン(''mix-in'')することが出来ます。
 
* 抽象クラスと同様に、トレイトは具象メンバを持つことができますが、インスタンス化することはできません。
trait T { /* ... */ }
* インターフェイスと同様に、クラスは複数のトレイトのメンバを継承することができます。
* クラスはトレイトで拡張することができます。<syntaxhighlight lang=Scala>
class C extends TTrait1 { /* ... */ }
</syntaxhighlight>
class C extends D with T { /* ... */ }
* クラスや他の特徴を継承することができます。<syntaxhighlight lang=Scala>
trait T1 extends Class1 { ... }
trait T2 extends Trait1 { ... }
</syntaxhighlight>
* クラス、オブジェクト、トレイトはトレイトの中で混在することができます。<syntaxhighlight lang=Scala>
class C extends DTrait1 with TTrait2 {with /*Trait3 { ... */ }
val obj = new Class1() with Trait1 with Trait2 with Trait3 { ... }
</syntaxhighlight>
 
== 脚註 ==