Rubyでクラスの継承(inheritance)
基本からちまちまとやっていこう。
Codecademyのレッスン中ではRubyのクラス継承がこんなコードで説明されている。
class ApplicationError def display_error puts "Error! Error!" end end class SuperBadError < ApplicationError end err = SuperBadError.new err.display_error
勉強もせずにRubyのコードに触れたとき、「まずこの不等号は何なんだ」と感じてたんだけど、このサンプルだととてもわかりやすい。
class SuperBadError < ApplicationError
SuperBadErrorというクラスはApplicationErrorというクラスを継承してますよ、という意味。で、継承していればdisplay_errorというメソッドはSuperBadErrorの定義に書き加えないでいい。
昨日、わけわかんなかったこれは
# なにこれclassの中で何も定義してないじゃん # なんだこの不等号! class Comment < ActiveRecord::Base end
「ActiveRecord::Baseを継承したCommentというクラスを定義する」という意味だったことがわかる。
Rubyはググればググるだけ「◯◯というものをつくったのでソースコード置いときます」みたいな記事がヒットするので、早くまともに読めるようになりたい。