継承
3
10
class Parent VAL = 10 @@val = 1 def initialize(val) @val2 = val end def testMethod() puts @@val + @val2 end end class Child < Parent end test = Child.new(2) test.testMethod() puts Child::VAL
継承とは、別のクラスのプロパティ、メソッドなどを使用できるようにすることです。
継承されるクラス(上の例のParentクラス)のことを親クラス、継承するクラス(上の例のChildクラス)のことを子クラスと呼びます。
クラス定義時に
の形式で記入することで継承を行うことができます。
Rubyでは、複数のクラスを同時に継承する多重継承(親が複数になる状態)は出来ません。
親クラスで定義されているメソッドと同名のメソッドを子クラスで再定義することでメソッドを上書きすることもでき、この上書きのことをオーバーライドと呼びます。
オーバーライド後に親のメソッドを呼び出したいときは、
のようにするとsuper(引数)を記入した場所で親の同名のメソッドが実行されます。
継承されるクラス(上の例のParentクラス)のことを親クラス、継承するクラス(上の例のChildクラス)のことを子クラスと呼びます。
クラス定義時に
class クラス名 < 継承するクラス名
の形式で記入することで継承を行うことができます。
Rubyでは、複数のクラスを同時に継承する多重継承(親が複数になる状態)は出来ません。
親クラスで定義されているメソッドと同名のメソッドを子クラスで再定義することでメソッドを上書きすることもでき、この上書きのことをオーバーライドと呼びます。
オーバーライド後に親のメソッドを呼び出したいときは、
def メソッド名
処理
super(引数)
処理
end
処理
super(引数)
処理
end
のようにするとsuper(引数)を記入した場所で親の同名のメソッドが実行されます。