Ist es in Perl möglich, eine Unterklasse zu erstellen, ohne einen Konstruktor zu implementieren? Ich brauche kein Unterklassen-spezifisches Konstruktorverhalten, deshalb möchte ich von dem Elternteil erben.Kann ich eine Perl-Unterklasse erstellen, ohne einen untergeordneten Konstruktor zu implementieren?
In diesem Beispiel habe ich eine Basisklasse Base.pm
und eine Kindklasse Child.pm
. Die Child
Klasse einfach eine ihrer Eltern Methoden außer Kraft setzen sollte:
# test.pl
use strict;
use warnings;
use Child;
my $o = Child->new();
$o->exec();
-
# Base.pm
package Base;
sub new{
my $self = {};
bless $self;
return $self;
}
sub exec{
my $self = shift;
die "I'm in the Base class\n";
}
1;
-
# Child.pm
package Child;
use Base;
@ISA = ('Base');
sub exec{
my $self = shift;
die "OVERRIDE in child\n";
}
1;
Als ich test.pl laufen, die exec Methode der Basisklasse bekommt ausgeführt (ich nehme an, es ist, weil das Objekt als Base
im Base.pm
Konstruktor gesegnet wird).
$ ./test.pl
I'm the Base class
Gibt es eine Möglichkeit, eine untergeordnete Klasse zu implementieren, ohne einen Konstruktor neu implementieren zu müssen?
Siehe auch ['Vererbung - Schreibkonstruktoren in perlobj'] (http://perldoc.perl.org/perlobj.html#Writing-Constructors) – zdim