1. Perl
  2. オブジェクト指向プログラミング
  3. here

多重継承

多重継承とは、親クラスを二つ以上指定する継承のことを言います。一般的には、多重継承を使わないで、単一継承でオブジェクト指向プログラミングを行うことが推奨されています。

多重継承の実装

多重継承の実装方法を紹介します。Perlには継承を行う方法が複数存在します。公式にはparentモジュールが推奨されていますが、baseモジュールはPerl v5.0から存在し、もっとも多く使われているように感じます。

@ISAを使う場合

@ISAを使った多重継承のサンプルです。

package Multi;

sub foo {
  # ...
}

package Point3D;

sub new {
  # ...
}

package Point;

our @ISA = ('Point3D', 'Multi');

baseモジュール

baseモジュールを使った多重継承のサンプルです。

package Multi;

sub foo {
  # ...
}

package Point3D;

sub new {
  # ...
}

package Point;

use base 'Point3D', 'Multi';

parentモジュール

parentモジュールを使った多重継承のサンプルです。

package Multi;

sub foo {
  # ...
}

package Point3D;

sub new {
  # ...
}

package Point;

use parent -norequire, 'Point3D', 'Multi';

多重継承でスーパークラスのメソッドの呼び出し

多重継承でスーパークラスのメソッドを呼び出す方法についてはmroを参考にしてください。

業務に役立つPerl

Perlテキスト処理のエッセンス 書籍版

関連情報