いくつかのコード
class Parent
def print
p "Hi I'm the parent"
end
end
class Child < Parent
def initialize(num)
@num = num
end
def print
child_print
end
def child_print
if @num == 1
#call parent.print
else
p "I'm the child"
end
end
end
c1 = Child.new(1)
c2 = Child.new(2)
c1.print
c2.print
Child
のインスタンスですParent
。Print
インターフェイスで公開されるメソッドであり、両方のクラスがそれらを定義します。Child
(おそらく非常に複雑な) メソッドで他のことを行うことを決定しますが、何らかの条件下でその親のメソッドを呼び出します。
私はちょうど書くことができました
def print
if @num == 1
super
else
p "I'm the child"
end
end
これは機能しますが、単純な 1 行での比較ではなく、別の方法に分割する必要がある多くの複雑なことを行っている場合はどうなるでしょうか? 親のメソッドを呼び出す必要があると判断する前に、いくつかの計算を行う必要がある場合があります。
あるいは、それを設計する別のより良い方法があるかもしれません。