その他
    ホーム 技術発信 DoRuby Rubyの継承について

    Rubyの継承について

    この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

    どうもメガネです。10回目です。

    今回もRubyのオブジェクト指向について説明します。 前回はクラスの定義の仕方、メソッドの定義の仕方、インスタンスの作成などを説明しました。 今回は継承について説明します。継承とは元のクラスの変更を行わずに新しいメソッドや元のメソッドをカスタマイズできる便利な機能です。
    説明では親のクラスをスーパークラス、子のクラスをサブクラスとします。
    class Parent
      def initialize(myname)
       @name=myname
      end
      def helloworld
       print “Hello, World I am “,@name,”\n”
      end
    end

    Class Child < Parent
    end

    こうやって定義することによって

    parent = Parent.new(“hoge”)
    parent.helloworld   #Hello, World I am hogeが出力
    child = Child.new(“hoge”)
    child.helloworld      #Hello, World I am hogeが出力

    サブクラスはスーパークラスのメソッドを定義しなくても使えます。
    次にオーバーライドしてみます。オーバーライドとはメソッドを変更することです。
    Class Child < Parent
      def helloworld
       print “I am”,@name,”\n”
      end    
    end

    parent = Parent.new(“hoge”)
    parent.helloworld
    child = Child.new(“hoge”)
    child.helloworld

    スーパクラスにあるメソッドをサブクラスで定義すると変更できます。こうすることによってスーパークラスのメソッドに手を加えずに変更できるので便利です。

    parent = Parent.new(“hoge”)
    parent.helloworld   #Hello, World I am hogeが出力
    child = Child.new(“hoge”)
    child.helloworld      #I am hogeが出力

    今日はここまで

    記事を共有