Go to the first, previous, next, last section, table of contents.


スーパークラスのメソッドのオーバライド

以下の例は、スーパークラスのメソッドをオーバライドし、オーバライドされた 後でそのメソッドを呼び出す方法を示します。`Foo::Inherit' クラスを使っ て、オーバライドされたスーパークラスのメソッドが、実際には、どこで定義さ れているか知らなくても、そのメソッドを呼び出せるようにしています。

package Buz;
sub goo { print "here's the goo\n" }

package Bar; @ISA = qw( Buz );
sub google { print "google here\n" }

package Baz;
sub mumble { print "mumbling\n" }

package Foo;
@ISA = qw( Bar Baz );
@Foo::Inherit::ISA = @ISA;  # オーバライドされたメソッドのアクセス

sub new { bless [] }
sub grr { print "grumble\n" }
sub goo {
        my $self = shift;
        $self->Foo::Inherit::goo();
}
sub mumble {
        my $self = shift;
        $self->Foo::Inherit::mumble();
}
sub google {
        my $self = shift;
        $self->Foo::Inherit::google();
}

package main;

$foo = new Foo;
$foo->mumble;
$foo->grr;
$foo->goo;
$foo->google;


Go to the first, previous, next, last section, table of contents.

検索式: