Perlゼミ

  1. Perl
  2. オブジェクト指向
  3. 継承の仕組み

継承の仕組み

Perlにおける継承の仕組みを解説します。

1. 継承の仕組み

継承の仕組みは上位クラスに対してメソッドの探索をしているということです。前回のコードをもう一度見てみましょう。

use strict;
use warnings;

# コンポーネントクラス
package Component;
sub x { return 5 }


# ボタンクラス
package Button;
# 継承の記述
our @ISA = ('Component');

sub new { bless {}, 'Button' }

package main;
# ボタンクラスを使用する
my $button = Button->new;
print $button->x;

Buttonクラスには、x というメソッドがないのに、 x というメソッドを呼び出しているのでした。これは、@ISA = ('Component')という記述で継承しているからだと解説しました。

でも実は本当はメソッドの探索が行われているだけです。

2. メソッド探索のアルゴリズム

以下がメソッド探索のアルゴリズムです。

自分のパッケージ(この例の場合は Button) に x メソッドがあれば、それを呼び出す。もしなければ、 @ISA に含まれるパッケージ(この例では Component) の x メソッドを呼び出す。

これを最上位のスーパークラスまで繰り返します。これが、Perlにおける継承の実装です。

Perlの書籍
  • 業務に役立つPerl

    ログ解析など日本語を含むテキスト処理の実践!
    この私、Perlゼミの作者が執筆しています。
    ご購入、口コミ歓迎。
  • Perlの書籍 »
自己紹介
木本裕紀

「こっ、こしゃくな。
このPerオタクめ~!」

Twitter
フォロー、いいね、リツート、コメント歓迎

Youtube

チャンネル登録、いいね、コメント歓迎

kimoto.yuki@gmail.com
応援メッセージ、質問、間違い報告歓迎

木本システム株式会社
ご紹介キャンペーン実施中です。契約金額の10%をご紹介料としてお支払い。

(例)30万円のシステム開発委託契約が、1年続いたら、36万円がもらえる!!!