- Perl ›
- オブジェクト指向プログラミング ›
- 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
を参考にしてください。