perl模块编程之继承

一、继承

对于已经习惯了面向对象编程的人应该不再陌生了。继承是其一个主要的特性,增加代码的重用从而提高软件的性能。

简单的说模块是包,包是类。在C++中的类中都存在一个构造函数,perl也是(当然也可以没有)。一般的perl模块的构造函数如下

Sub new{

My $this={};

Bless $this;

Return $this;

}

但是如果想这个模块派生出另一个模块,这样就不可以,应该在创建的时候就容许其被继承,就必须保证有不同的类型可以被传入到new函数中来,那就以上构造函数改为

Sub new{

$type=shift;

$class=ref($type)||$type;

My $this={};

Bless $this,$class;

Return $this;

}

Bless是可以有两个参数的,第二个可选的,如果没有写第二个参数,就是和本模块相bless,写了,就是和已写的类型相bless。可以多次bless一个引用对象,然而,新的将被bless的类必然把对象已被bless的引用去掉,就像在C中把一块内存赋给一指针,再把另一块内存赋给同一个指针,而没有释放前一块内存。记住,一个perl对象每一时刻只能属于一个类。

Perl类的方法只不过是一个Perl子程序而已,称之为成员函数。Perl的方法的定义不提供任何特殊语法,但规定方法的第一个参数为对象或其被引用的包。Perl有两种方法:静态方法和虚方法。

静态方法

静态方法第一个为类的名称,即为模块名称,方法处理第一个参数的方式决定了是静态还是虚的。静态的方法一般会忽略第一个参数,方法知道是属于那个类,如下

Sub dosomething{

My ($modulename

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值