オーバーライド

前回子モジュールを作りました。
そして、親モジュールの内容を書き換えようとしたわけですが。

どうやって書き換えるかというと、
親と同じメソッド(サブルーチン)を子にも書いてやればよかったわけです。

でも。
なんかピンときませんよね。
親のサブルーチンをコピーして貼付けて、それに付け加えたり、削除したり。
なんか、プログラムにしては手間のかかる事してる気がします。

なので、もっと簡単な書き方を。
スタートというサブルーチンの中身を書き換えたいとします。

親モジュールのstartサブルーチンの中身

sub start {
my $self = shift;
 $c = $a+$b;
 $d = $c+$a;
print $c;

}

子モジュールの中

sub start {
   		my $self = shift;
                $self -> SUPER::start();

                print "あいうえお";
}

これで終了です。
どうですか?簡単でしょ!?
あの一文を書く事で、print "あいうえお"は、元のモジュールに付け加えられたわけです。
これで全部書く必要がなくなりました♪
便利便利。