Rubyのオープンクラス

Rubyは自由度の高い動的な言語と言われ、その象徴的なものとしてオープンクラスというものがある。

オープンクラスによって、すでに定義されたクラスに対して再度メソッドを定義したり、追加したりすることができる。Rubyが標準で提供しているクラスに対してもオープンクラスによって定義を書き換えることができる。

つまり、Rubyではクラスを継承することなく上書きすることができる。これには弊害もあり、既存のメソッドを上書きすることでそれまでにない振る舞いが生じるため、それまでうまく動いていた他の箇所にまで影響が及ぶ可能性がある。