前提・実現したいこと
<楽しいRuby第5版の身になる学習方法の追求>
楽しいRuby第5版を1ページずつ学習していますが、途中でどこに向かっているのかわからなくなってしまいました。
何か身になる学習方法や、コツなどご教示いただけますと助かります。よろしくお願いします。
該当のソースコード
class C1 # C1クラスの定義
def hello
"good"
end
end
class C2 < C1 # C1クラスを継承してC2クラスを定義
alias old_hello hello # 別名old_helloを設定
def hello # helloを再定義
"#{old_hello},again"
end
end
obj = C2.new
p obj.old_hello #=>"Hello"
p obj.hello #=>"Hello,again"
END
【8.4 aliasとundef】
----< 8.4.1 alias >---------------------------------------------------enjoy_ruby ver.5 P141 3/10 10:39
=> 既に存在するメソッドに別の名前を割り当てたい場合
・aliasを使う方法
・aliasの引数にはメソッド名かシンボル名を指定します。
<例>
alias 別名 元の名前 # メソッド名をそのまま書いた場合
alias :別名 :元の名前 # シンボルを使った場合
<用途>
1.Array#sizeメソッドとArray#lengthメソッドのように同じ機能を複数の名前で提供する場合などに使用する。
2.既に存在するメソッドの定義を変更する場合に、元のメソッドを別名で呼び出せるように保存しておくためにも使えます。
----< 8.4.2 undef >----
=> 定義されたメソッドをなかったことにしたいときは、undefを使う。
これもaliasと同様に、メソッド名かシンボル名を指定する。
<例>
undef メソッド名 < # メソッド名をそのまま書いた場合
undef :メソッド名 < # シンボルを使った場合
<用途>
・スーパークラスで提供するメソッドをサブクラスでは削除する。
といった用途で用いる。
言語:Ruby
試したこと
該当章を写経
補足情報(FW/ツールのバージョンなど)
ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-darwin16]
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/03/13 13:51 編集