親クラスで定義したメソッドを呼ばず、子クラスでのメソッドが呼ばれます。
---Foo.pm-----
package Foo;
sub new{
my $pkg = shift;
my $hash= {};
bless $hash,$pkg;
}
sub sub1{
my $self = shift;
$self->sub2;
}
sub sub2{
my $self = shift;
print "this is abstract\n";
}
1;
---Foo2.pm (Fooの子クラス)-----
package Foo2;
use base qw(Foo);
sub sub2{
my $self = shift;
print "Foo2 sub2\n";
}
1;
--- main.pl (実行スクリプト)---
#!/usr/local/bin/perl
use Foo2;
my $f = Foo2->new;
$f->sub1;
__END__
--- 実行結果
Foo2 sub2
No comments:
Post a Comment