この記事はアピリッツの技術ブログ「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が出力
今日はここまで