Perl 类继承简单讲解
来源:互联网 发布:简单java单线程程序 编辑:程序博客网 时间:2024/06/15 22:56
在用面向对象编程范式时,常用到类的继承。Perl的类使用Module的方式实现,一个package即可完成一个类声明。
CPAN上找到一个模块,使用了继承,本人从未使用过继承,这次也照猫画虎写了一个非常简单的demo,初步窥探了继承的实现过程。
环境:
Linux 3.18.0-kali3-amd64 x86_64 GNU/Linux
Perl v5.14.2 built for x86_64-linux-gnu-thread-multi
父类: Scalar, 子类: Phone
#!/usr/bin/perl# author : ez# date : 2015/7/21# describe : --package Phone;use strict;use warnings;@Phone::ISA = 'Scalar'; # very important# our $VERSION = 1.0;sub new {my $class = shift;my ($_name, $_price, $_color) = (shift, shift, shift);my $self = {name => $_name,price => $_price,color => $_color};bless $self, $class;$self;}sub sftr {my $self = shift;# foreach (@Phone::ISA) {# print "$_\n";# } # only print 'Scalar'$self->SUPER::sftr ();}sub display {my $self = shift;print "name :". $self -> {'name'} . ", price :". $self -> {'price'} . ", color :". $self -> {'color'} . "\n";}1;
其中有一句代码非常重要,主要是声明其继承的是哪个类:
@Phone::ISA = 'Scalar';
父类的简单编写:
#!/usr/bin/perlpackage Scalar;use strict;use warnings;use Phone;sub sftr {print "this is Scalar::sftr";}my $my_phone = Phone -> new ('', '', '');$my_phone -> sftr ();Phone 继承了父类的方法。先看父类中调用子类的方法sftr (), 在子类中,调用了父类的sftr (), 只用这一句即可:
$self -> SUPER::sftr ();SUPER即是Phone模块的符号表,其中添加了对Scalar类的继承,这句将执行父类的sftr () 方法。
0 0
- Perl 类继承简单讲解
- Perl 模块简单讲解
- Perl中的类与继承
- C# 继承类实例讲解
- Perl正则表达式讲解
- perl详细讲解
- Perl正则表达式讲解
- 详细讲解C++ 类的继承
- 详细讲解C++ 类的继承
- 详细讲解C++ 类的继承
- 详细讲解C++ 类的继承
- 详细讲解C++ 类的继承
- 详细讲解C++ 类的继承
- 详细讲解C++ 类的继承
- oo Perl 继承
- oo perl 继承问题
- perl 继承实现
- Perl面向对象--继承
- 文章标题
- MySql创建本地用户和远程用户 并赋予权限
- C++ Primer Plus第六版 第十一章 编程练习答案
- java 抽象类和接口
- PAT(甲级)1056
- Perl 类继承简单讲解
- Number of 1 Bits
- PAT(甲级)1057
- 283:Move Zeroes
- 树的深度优先与广度优先遍历
- Java反射通过class获取父类泛型类型
- log4j配置
- JMS学习
- C++ string类型的split字符串分割函数