広告スペース(バナー)
💎Ruby レッスン
基本文法の基礎8
データ構造とオブジェクト指向7
構文の基本を深める9
関数とデータ構造の応用9
アルゴリズムとテストの基礎8
文字列・数値操作の応用8
実務で役立つ機能8
アルゴリズム練習問題10
レッスン 16 / 68

継承(クラスの拡張)

このレッスンでは、Rubyのクラス継承を学び、共通の機能を持つクラスを効率よく設計できるようになることを目標にします。「Ruby 継承 使い方」で調べている方向けの内容です。

class 子クラス < 親クラスと書くと、親クラスの機能を引き継いだ新しいクラスを作れます。これを継承と呼びます。「動物」という共通の設計図をもとに、「犬」「猫」のようにそれぞれ独自の鳴き方を追加していく、オブジェクト指向の代表的なテクニックです。

サンプルコードでは、Animalクラスを親としてDogクラスを継承し、speakメソッドを独自に定義し直しています(オーバーライド)。Dog.new("ポチ")で作ったインスタンスは、Animalから引き継いだ@nameと、Dog独自のspeakの両方を持っています。

初心者がよくつまずくのが、子クラスでinitializeを独自に定義する場合の親クラスの初期化です。子クラスでinitializeを定義しない場合、自動的に親クラスのinitializeが使われますが、独自に定義する場合はsuperで親クラスの初期化処理を呼び出す必要があります。

共通する部分を親クラスにまとめておくことで、同じコードを何度も書く手間を省けます。大規模なアプリケーションの設計でも重要な考え方として活用されています。

📖 お手本コード
✍️ あなたのコード
コードを書いたら「実行する」を押してください

🧪 このサイトではRubyを直接コンパイル・実行できないため、お手本コードと同じ内容を入力できたかをその場で判定します(採点はブラウザ内だけで行われ、どこにも送信されません)。

広告スペース(バナー)
広告スペース(記事内)