●学校情報

講座一覧・募集状況

学習方法

学習サポート

修了生の評価

受講生の横顔

当学院について

入学相談

入学手続

 

●講座情報

技術者養成講座

プログラミング講座

WEB講座

情報処理試験講座

Excel講座

Access講座

 

●関連コラム

関連コラム

関連用語集

 

logo

 

 

関連用語集

Rubyのメソッドのオーバーライド(Override)とは?継承したメソッドを再定義しよう

Rubyでは、親クラスで定義されたメソッドを、子クラスで再定義することができます。 これを「オーバーライド(Override)」と呼びます。

オーバーライドを使うと、共通の構造を保ちつつ、クラスごとに異なる動作を定義でき、柔軟な設計が可能になります。

オーバーライドの基本構文

class Animal
  def speak
    puts "何かが鳴いています"
  end
end

class Dog < Animal
  def speak
    puts "ワンワン!"
  end
end

dog = Dog.new
dog.speak  # → ワンワン!

この例では、Dog クラスが Animal クラスの speak メソッドを上書きしています。

オーバーライド時に super を使う

class Animal
  def speak
    puts "動物の鳴き声:"
  end
end

class Cat < Animal
  def speak
    super
    puts "ニャー"
  end
end

Cat.new.speak

super を使うと、親クラスの同名メソッドを呼び出すことができます。 オーバーライドで処理を追加する際に便利です。

オーバーライドの使いどころ

  • 親クラスの基本動作を変更したいとき
  • 子クラスごとに異なる処理をしたいとき
  • 共通処理の上に個別処理を追加したいとき(super)

オーバーライドの注意点

  • 同じ名前で再定義すると元のメソッドは上書きされる
  • 引数の数や意味が変わらないように設計するのが望ましい
  • super を使うときは、引数の受け渡しも意識する

super に引数を渡す例

class Animal
  def info(name)
    puts "名前:#{name}"
  end
end

class Dog < Animal
  def info(name)
    super(name)
    puts "種類:犬"
  end
end

Dog.new.info("ポチ")

まとめ

Rubyのメソッドのオーバーライド(Override)は、継承を活用した柔軟な設計に欠かせない機能です。 子クラスで親クラスのメソッドを再定義することで、動作をカスタマイズできます。

super を併用すれば、親の処理を引き継ぎつつ拡張も可能です。 共通化とカスタマイズを両立させたいときに、積極的に活用していきましょう。