Groovy-traits
提供:Dev Guides
グルーヴィー-特性
特性は、許可する言語の構造的な構成です-
- 行動の構成。
- インターフェイスのランタイム実装。
- 静的型チェック/コンパイルとの互換性
これらは、デフォルトの実装と状態の両方を保持するインターフェースと見なすことができます。 特性は、traitキーワードを使用して定義されます。
特性の例を以下に示します-
次に、implementキーワードを使用して、インターフェイスと同様の方法で特性を実装できます。
インターフェースの実装
特性はインターフェースを実装できます。その場合、インターフェースはimplementsキーワードを使用して宣言されます。
インターフェースを実装する特性の例を以下に示します。 次の例では、次の重要な点に注意することができます。
- インターフェイスTotalは、メソッドDisplayTotalで定義されます。
- 特性マークはTotalインターフェースを実装するため、DisplayTotalメソッドの実装を提供する必要があります。
上記のプログラムの出力は次のようになります-
プロパティ
特性はプロパティを定義できます。 プロパティを持つ特性の例を以下に示します。
次の例では、整数型のMarks1はプロパティです。
上記のプログラムの出力は次のようになります-
行動の構成
特性を使用して、制御された方法で複数の継承を実装し、ダイヤモンドの問題を回避できます。 次のコード例では、 Marks と Total の2つの特性を定義しています。 Studentクラスは両方の特性を実装します。 学生クラスは両方の特性を拡張するため、 DisplayMarks と DisplayTotal の両方のメソッドにアクセスできます。
上記のプログラムの出力は次のようになります-
特性の拡張
特性は別の特性を拡張する場合があり、その場合は extends キーワードを使用する必要があります。 次のコード例では、MarksトレイトでTotalトレイトを拡張しています。
上記のプログラムの出力は次のようになります-