オーバーライド
前回子モジュールを作りました。
そして、親モジュールの内容を書き換えようとしたわけですが。
どうやって書き換えるかというと、
親と同じメソッド(サブルーチン)を子にも書いてやればよかったわけです。
でも。
なんかピンときませんよね。
親のサブルーチンをコピーして貼付けて、それに付け加えたり、削除したり。
なんか、プログラムにしては手間のかかる事してる気がします。
なので、もっと簡単な書き方を。
スタートというサブルーチンの中身を書き換えたいとします。
親モジュールのstartサブルーチンの中身
sub start { my $self = shift; $c = $a+$b; $d = $c+$a; print $c; }
子モジュールの中
sub start { my $self = shift; $self -> SUPER::start(); print "あいうえお"; }
これで終了です。
どうですか?簡単でしょ!?
あの一文を書く事で、print "あいうえお"は、元のモジュールに付け加えられたわけです。
これで全部書く必要がなくなりました♪
便利便利。