えくすぽーと備忘録

ただの備忘録です。過度な期待はしないでください。

ミックスインって何ぞや...(書きかけ)

1.背景

scala を勉強したく適当にやってて

implicitって何だろうという感じになった

いや,ちょっと待て...traitもわからないぞ?

それで,ggったりコップ本を読んだりしていた

しかもミックスインってなんだよ...状態

これはもはや,どうすればいいのかわからない(´・ω・)

そこで,まずはtraitからやろうかなと思い立ったわけなんだけど,これ継承や合成をひとまずやってからやった方がよかったんだろうか…

2.継承でミックスイン?

REPLでちょっと適当に遊んでみた

trait Funabashi
  def ad() {
    println("船橋市の名産は梨だよ!")
  }
}

extendsを使えばトレイトを"ミックスイン"できるらしい

class Funassy extends Funabashi {

  override def toString = "ふなっしぃなっしーーーーー!!!!!!!"

}

これで適当に実行する

scala> val funassy = new funassy

fanassy: Funassy = ふなっしぃなっしーーーーー!!!!!!!

 

scala>funassy.ad()

船橋市の名産は梨だよ!

こんな感じで実行できた(適当)

トレイトから継承したメソッドad()がスーパークラスから継承したメソッドのように使えるみたい(これじゃ普通のクラスとあんまり変わりないじゃん?)

”ミックスイン”って何かと思ったけど,トレイトで宣言した関数を子クラス?側で使うことが出来るから混ぜ合わせた感じになってるからミックスインなのかな?

もう少し続きを後で書こうと思う