継承
[Perl]継承
例えば、モジュールを使ってメールフォームを作りたいとします。
その時、モジュールの中身はほとんど同じなんだけど、
ちょこちょこ違うからそこだけ親のモジュールの処理を書き換えたい場合があると思います。
そんなときにこの「継承」を使います。
まず、親モジュールを書き換えるためにはもう一つモジュールが必要になってきます。
子モジュールです。
子モジュールを作成する方法は親モジュールを作成したときと同じです。
package Kodomo;
これで子モジュールを作成しました。
この子モジュールは、親モジュールと違う部分だけを書いていけばいいのですが、
そのためには親モジュールの内容を全て受け継ぐ必要があります。
それを書いてやらなければいけません。
use base qw(Oya);
はい、これでできあがり。
親モジュール(Oya)をベースとして、子モジュール(Kodomo)を作りますよ、という意味です。
@ISAとかよく聞くと思いますが、これ一つでもう継承されたことになるんですよw
これで、この下から書き始める子モジュールは、親モジュールの内容を全て受け継ぐ事ができました。
MEMO
#!/usr/bin/perl use KCatch qw( execdata );__DATA__ #(デバッグツールKCatch) use strict; (変数が宣言されているかどうかチェックツール) use Jcode;(文字コードのツール) メイン処理はここへ #子モジュール######### package Kodomo; #子モジュール作成 use base qw(Oya); #親モジュールの内容を継承 use vars qw($VERSION); #必ず書く $VERSION = 1.00; #お約束 use CGI; #CGIモジュール use Jcode; #Jcodeモジュール sub start { #親と同じメソッドをかけば、子の方のメソッドが優先して処理される }