●学校情報

講座一覧・募集状況

学習方法

学習サポート

修了生の評価

受講生の横顔

当学院について

入学相談

入学手続

 

●講座情報

技術者養成講座

プログラミング講座

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

 

Ruby関連用語集

−−−−−  Ruby  −−−−−

Rubyのオブジェクト指向とは?クラスやメソッドの仕組みをわかりやすく解説

Rubyのクラス(Class)とは?オブジェクトの設計図を学ぼう

Rubyのモジュール(Module)とは?コードを整理・共有する仕組みを学ぼう!

Rubyのメソッド(Method)とは?定義と使い方をやさしく解説

Rubyのブロック(Block)とは?繰り返しやコールバック処理に使える便利な仕組み

Rubyのイテレータ(Iterator)とは?繰り返し処理の基本をマスターしよう!

RubyのEnumerableモジュールとは?便利な繰り返し処理を一気に習得!

RubyのProc(プロック)とは?ブロックをオブジェクト化して使いこなそう

RubyのLambda(ラムダ)とは?Procとの違いも含めてやさしく解説!

Rubyのシンボル(Symbol)とは?文字列との違いと使いどころをわかりやすく解説

Rubyのハッシュ(Hash)とは?キーと値のペアでデータを扱う基本構造

Rubyの配列(Array)とは?基本構文と便利な操作方法をマスターしよう!

Rubyのスコープ(Scope)とは?変数の見える範囲を理解しよう

Rubyのインスタンス変数(@変数)とは?クラスでデータを保持する基本

Rubyのクラス変数(@@変数)とは?全インスタンスで共有する値を管理する

Rubyの定数(Constant)とは?値を固定するための書き方と使い方

Rubyのグローバル変数($変数)とは?使い方と注意点をやさしく解説

Rubyのself(自己参照)とは?使い方と意味をやさしく解説!

Rubyの継承(Inheritance)とは?コードの再利用と拡張の基本

Rubyのミックスイン(Mixin)とは?モジュールで機能を共有する方法

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

Rubyの例外処理(Exception Handling)とは?エラー発生時の安全な対処法

Rubyのbegin-rescue-end構文とは?エラーを安全に処理する基本構文

Rubyのyield(ブロック呼び出し)とは?ブロックの使い方と柔軟なメソッド設計

Rubyのrequire / loadとは?外部ファイルの読み込み方法と使い分け

Rubyのgem(RubyGems)とは?便利なライブラリの管理方法を解説!

Bundlerとは?Rubyのgemを簡単に管理できる便利ツール

RubyのRakeとは?ビルドやタスクを自動化する便利ツールを解説!

IRB(Interactive Ruby)とは?Rubyを手軽に試せる対話型ツール

Rails(Ruby on Rails)とは?Webアプリ開発の強力フレームワーク