前几天被问了perl的继承,因为太长时间没有用过,连面向对象具体怎么写的都记得不是十分清楚了。
这里记录一下。
KeyPoint:
1.使用hash存储类的各个成员field。
2.hash新建的时候是一个匿名hash的引用。
3.bless($self,$class)是将该类和匿名hash $self绑定,类名可以忽略。
4.bless的是引用不是hash。
5.继承相当于往父类的hash里新注册一些东西,添加完后bless即可。
-
package Parent;
-
#parent
-
-
sub new{
-
my $class = shift ;
-
my $self = {"name" => "Parent} ;
-
bless($self, $class) ;
-
return $self ;
-
}
-
-
use Parent;
-
package Child;
-
@ISA = qw(Child);
-
-
#child
-
-
-
sub new{
-
my $class = shift ;
-
my $self = Parent->new();
-
$self->{"childname"} = "child";
-
bless($self);
-
return $self;
-
}
阅读(2263) | 评论(0) | 转发(0) |