2007-01-27

perlで継承

モジュール分けすることは今まででもやってたけど、
継承はする意味がないかなと思ってやってなかった。
んで、必要がでてきたので継承をしてみたんだけど、
@ISAを使うのはなんか嫌だなと思って探してみた。
こうすればできるみたい。
package InheriteClass;
use BaseClass;
use base qw(BaseClass);

sub new {
  my $class = shift;
  my $self = $class->SUPER::new; # コンストラクタの呼び出し
  return bless($self, $class);
}
1;

perlではC++やJavaのようなnewはないので、慣例的にnewメソッドをコンストラクタとして書く。
(当たり前すぎて面白くもない?)
んで、アクセス指定子なんてご大層なものはないので、
継承すると基底クラスのメソッド、プロパティは使い放題。
(そもそも、なんでも使い放題なんだが。これなんとかならんのかな?)

No comments:

Post a Comment