ホーム 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が出力

今日はここまで

記事を共有

最近人気な記事