Rubyでオブジェクト指向プログラミングを行う際、メソッドのオーバーライドは重要な概念です。オーバーライドとは、親クラスで定義されたメソッドを子クラスで上書きし、独自の処理を実装することを指します。この記事では基本概念と具体例を交えて解説します。
メソッドオーバーライドの基本
Rubyではクラスの継承を利用して、子クラスが親クラスのメソッドを上書きできます。これにより、共通のメソッドを持ちながら、特定のクラスだけで異なる動作をさせることが可能です。
例えば、Animalクラスにspeakメソッドを定義し、Dogクラスでオーバーライドすると、犬だけ異なる鳴き声を出力できます。
具体的なコード例
親クラスの定義例:
class Animal
def speak
puts "Some sound"
end
end
子クラスでのオーバーライド例:
class Dog < Animal
def speak
puts "Woof!"
end
end
dog = Dog.new
dog.speak # 出力: Woof!
このように、子クラスでメソッドを再定義することで、親クラスとは異なる処理を実行できます。
superキーワードの活用
オーバーライドしたメソッド内で親クラスの処理も呼び出したい場合は、superキーワードを使用します。これにより、親の処理を実行した上で、子クラス独自の処理を追加できます。
class Dog < Animal
def speak
super # 親クラスのspeakを呼び出す
puts "Woof!"
end
end
活用場面
メソッドのオーバーライドは、ゲーム開発やGUIアプリケーション、Webアプリのコントローラーなど、親クラスの共通処理を利用しつつ、特定クラスだけ異なる動作が必要な場合に便利です。
複数の子クラスが同じ親クラスを継承している場合でも、オーバーライドを使えば、個別の振る舞いを容易に実装できます。
まとめ
Rubyのメソッドオーバーライドは、親クラスのメソッドを子クラスで上書きすることで、共通処理を維持しつつ独自の動作を追加する手法です。superキーワードを併用することで、親の処理を活かした拡張も可能です。オブジェクト指向プログラミングを効率的に活用するための基本的なテクニックとなります。


コメント