在这里直接放上一个例子:AdvancedFighter 继承了 Fighter
Fighter.pm
sub new {
my $class = shift;
my $self = {
"NO" => shift,
"HP" => shift,
"attack" => shift,
"defense" => shift,
"speed" => shift,
"defeated" => shift,
};
return bless $self, $class;
};
这里 Fighter 含有 6 个属性
接下来是 AdvancedFighter:
sub new{
my $class = shift;
my($NO,$HP,$attack,$defense,$speed,$defeated,$coins,@history_record) = @_;
my $self = new Fighter($NO,$HP,$attack,$defense,$speed,$defeated);
$self->{coins} = 0;
my @record = ();
$self->{history_record} = \@record;
return bless $self, $class;
}
继承的时候需要在 new 里面新建一个被继承的对象,需要添加的属性(在这里是 coins 和 history_record) 在后面直接添加,这样拥有 8 个属性的继承者就弄好啦!