2013年8月3日土曜日

[CoffeeScript]メソッドのオーバライド

継承した親クラスと同名のメソッドを小クラス側に定義することで、親クラスの処理を上書きできる。
親クラスの処理を呼び出したい場合には、superで実現できる。引数がある場合には、superにパラメータとして指定すれば良い。

class Super

  func: ->
    console.log 'Super#func'


class Sub extends Super
  func: ->
    console.log 'sub#func'
    super


sub = new Sub()
sub.func()
上記コードを実行すると、以下のようにsuperキーワードで親クラスの同一メソッドが呼び出せていることが確認できる。
sub#func
Super#func