在用物件導向程式設計正規化時,常用到類的繼承。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 ;
bless $self, $class;
$self;
}sub sftr # only print 'scalar'
$self->super::sftr ();
}sub display .
", price :". $self -> .
", color :". $self -> . "\n";
}1;
其中有一句**非常重要,主要是宣告其繼承的是哪個類:
@phone::isa = 'scalar';
父類的簡單編寫:
#!/usr/bin/perl
package scalar;
use strict;
use warnings;
use phone;
sub sftr
my $my_phone = phone -> new ('', '', '');
$my_phone -> sftr ();
phone 繼承了父類的方法。先看父類中呼叫子類的方法sftr (), 在子類中,呼叫了父類的sftr (), 只用這一句即可:
$self -> super::sftr ();
super即是phone模組的符號表,其中新增了對scalar類的繼承,這句將執行父類的sftr () 方法。 python中的類簡單講解
類似其它的語言,python 中的函式使用小括號 呼叫。函式在呼叫之前必須先定義。如果函式中沒有 return 語句,就會自動返回 none 物件。python 是通過引用呼叫的。這意味著函式內對引數的改變會影響到原始物件。不過事實上只有可變物件會受此影響,對不可變物件來說,它的行為類似按值呼叫。如...
java 繼承 講解
類前面加final 類不能被繼承 成員變數前面加final 他就是常量 方法前加final 那麼他不能被覆蓋和重寫 class person public string getname public int get public void setage int age public void set...
perl 簡單學習,安裝perl模組
檢查是否安裝了某個perl模組 有多種方式 0.perldoc perlinstall 列出所有的模組及版本號 1.perl m模組名 e 1 模組名不加空格 沒有返回值則說明有此模組 2.perl e use dbd oracle print dbd oracle version n window...