web-dev-qa-db-ja.com

Groovyの特性、継承、インターフェース、いつ使用するのですか?

私はGroovyを学んでいて、2.3で追加された新機能Traitsの追加について学んだところです。今の私には、Traitsを使用すると、基本的にスーパークラスとインターフェイスで実行できるすべてのことを実行できるように見えます。

Groovyにトレイトを追加すると、継承とインターフェースが廃止されますか?

そうでない場合、これらの各メカニズムを使用するのに最適な時期はいつですか?

10
Ryan Stull

トレイトは、(抽象)クラスの継承とインターフェースの実装という、両方の長所を兼ね備えています。トレイトにはメソッドのデフォルト実装を含めることができますが、タイプは一度に複数のトレイトを実装できます。これにより、ある種の多重継承が可能になりますが、 致命的なダイヤの死 を回避するのが良い方法です。

開始方法がわからない場合は、特性を使用してください。柔軟性が得られ、必要に応じて後でインターフェースまたはクラス継承に切り替えることができます。

4
fxfour