備忘録 〜プログラミング〜

プログラミングに関する事をつらつらと、、

ScalaのTraitについて調べてみた

まず、Traitとは、

メソッドとプロパティの集合
・単一継承の制約を軽減
・継承とは関係なく、共通の特性、振る舞いを再利用出来る
Javaインターフェイスと同じように、複数のトレイトをミックスインする事が出来る

上記のような特徴がある。

簡単なサンプル、

・使用するトレイト

  trait Mammal{
    def getTemperature() = {
    
    }
  }

ex )普通に実装

case class Human extends Mammal(){

}


ex )メソッドをオーバーライドする場合は、overrideを加える

case class Human extends Mammal(){
  override def getTemperature() = {
  
  }
}

traitはインスタンスも可能
ex )

val mammal = new Mammal{}

Javaインターフェイスとの大きな違いは、実装を持つ事が出来るという事。

実際に使用して、もう少し理解を深めよう。。

参考URL)
http://www.ne.jp/asahi/hishidama/home/tech/scala/trait.html