継承

[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 {

 #親と同じメソッドをかけば、子の方のメソッドが優先して処理される
}