アドベントカレンダー15日目の今日はトレイトという機能に注目したいと思います。トレイトとは実装を持ったインタフェースのようなものです。これはJVM言語のScala(まさにトレイトという名前の機能)や、Java SE 8(予定)にもある機能です。インタフェースが実装を持つとことで便利なこともありますが、問題もあるのではないかと心配になりますね。そこらへんを見て行きましょう。 抽象クラス トレイトの話題の前に抽象クラスを紹介します。抽象クラス、Javaプログラマならご存知ですね。抽象関数を持つクラスのことを抽象クラスと言い、そのクラスはインスタンス化できません。サブクラスを作成するために使用します。抽象関数とは実装を持たず、関数シグネチャのみを宣言した関数です。具体的な実装はサブクラスで定義します。ポリモーフィズム(多態性)を実現するための重要な仕組みです。 抽象クラスの概念のおさらいはここま
