8

Kotlin では、「呼び出し側でクラスを拡張する必要がある可能性がある特性」を作成する可能性があります。

 class Bar {}
 trait T1 : Bar {}
 class Foo : Bar, T1, T2, T3 {}
 class Wrong : T1, T2 //error: Wrong should extend Bar

この構造を適用できるフローは想像できません。なぜそれが必要なのか誰か教えてもらえますか?

4

1 に答える 1

8

これの主な理由は、具象クラスで定義されたメソッドとプロパティをトレイトが利用できるようにするためだと思います。Bar他の便利なメソッドを上に構築できるいくつかの基本的なメソッドがあると想像してください... のサブクラスで使用することをトレイトに要求することによりBar、そのメソッドを呼び出すトレイトでメソッドを定義できます。これらのメソッドにトレイトを与えることで、それらのメソッドを多くのサブクラスに提供できます。

于 2011-12-10T16:50:52.650 に答える