sla*_*law 1 perl inheritance constructor
我是Perl继承的新手,并且无法找到继承父构造函数的明确指令.我假设父类中的所有方法(包括构造函数)都是继承的,但看起来并非如此.所以,这还不够:
package Child;
use strict;
use Parent;
our @ISA=qw(Parent);
相反,我需要添加一个调用父构造函数的构造函数:
package Child;
use strict;
use Parent;
our @ISA=qw(Parent);
sub new {
  my $self=Parent::new(shift);
  bless $self;
  return $self;
}
也许有人可以为我澄清逻辑并告诉我是否继承父构造函数而不执行上面的操作(显式声明并调用父构造函数)?
你不需要这样做; 代码中的其他地方出了问题.
这是一个完整的工作示例:
main.pl:
use strict;
use warnings;
use Subclass;
my $object = Subclass->new();
print "object is a ", ref $object, "\n";
Subclass.pm:
package Subclass;
use strict;
use warnings;
use parent 'Superclass';
1;
Superclass.pm:
package Superclass;
use strict;
use warnings;
sub new {
    my $class = $_[0];
    return bless {}, $class;
}
1;
use parent 'Superclass' 只需加载Superclass并为您设置@ISA.
| 归档时间: | 
 | 
| 查看次数: | 217 次 | 
| 最近记录: |