🐕
superを使って柔軟なコードを書こう
はじめに
オブジェクト指向プログラミングにおいて、継承を利用することでコードの再利用性を向上させることができます。今回は、superの概念を使って、継承を活用しながら柔軟なコードを書く方法について解説します。
superとは?
'super'は、現在のクラスのスーパークラス(親クラス)の同名のメソッドを呼び出すために使用されるキーワードです。これにより、サブクラスでメソッドをオーバーライドしても、親クラスのメソッドの機能を保持しながら新しい機能を追加することができます。
※オーバーライドとは、サブクラス(子クラス)がスーパークラス(親クラス)のメソッドを新たに定義し直すことです。
superを利用しない場合
class Animal
def make_sound
puts "The animal makes a sound."
end
end
class Dog < Animal
def make_sound
puts "The dog barks."
end
end
animal = Animal.new
animal.make_sound #"The animal makes a sound."
dog = Dog.new
dog.make_sound #"The dog barks."
superを利用した場合
class Animal
def make_sound
puts "The animal makes a sound."
end
end
class Dog < Animal
def make_sound
super
puts "The dog barks."
end
end
dog = Dog.new
dog.make_sound
# The animal makes a sound.
# The dog barks.
superを利用することにより、DogクラスがAnimalクラスのmake_soundメソッドをオーバーライドしつつ、superを使って親クラスのメソッドを呼び出しています。
また、オブジェクトの作成はDogクラスのみで実装が可能になるため簡潔なコードで済みます。
まとめ
superを使って親クラスのメソッドを適切に呼び出すことで、コードの維持管理が容易になります。
これらの概念を理解し、適切に利用することで、オブジェクト指向プログラミングのパワーを十分に活用することができます。
Discussion