Tuesday, March 27, 2007

abstract サンプル Perl アブストラクトメソッド

親クラスで定義したメソッドを呼ばず、子クラスでのメソッドが呼ばれます。
---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: