2009-02-20から1日間の記事一覧

オーバーライドとオーバーロード

オーバーライドが成立する条件はメソッド名の同値性だけ。 たとえば以下の例 class Animal def speak "hello" end endclass Dog def speak(word) "hello " + word end enddog = Dog.newputs dog.speak => 14:in 'speak': wrong number of arguments (0 for 1…

instance_of?メソッド

"aaa".instance_of? String => true "aaa".instance_of? Object => false String === "aaa" => true Object === "aaa" => true "aaa" === "aaa" => true String === String => false String === Object => false A.instance_of? B は、AがBの直接のインスタ…

equal?メソッドと==メソッド

hoge1 = "aaa" hoge2 = "aaa"puts hoge1 == hoge2 => true puts hoge1.equal? hoge2 => false rubyの==メソッドはJavaのequals()メソッドと同様に、値が同値であることの検証を行う。 rubyのequal?メソッドはJavaの==演算子と同様に、オブジェクトが同一であ…

superキーワード

Rubyのsuper class Parent def speak(word) word end endclass Child def speak(word) super end endchild = Child.newputs child.speak('hello') => hello スーパークラス(またはインクルードしたモジュール)のメソッドを呼び出す構文。両方に定義されて…