Exporter brauchst du bei OO nicht.
ISA legt die Vererbung fest.
Schnippet:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#!/usr/local/bin/perl -w
# Definition einer Klasse
package Klasse;
sub new {
my $class = shift;
my $self = {};
bless $self, $class;
$self->_init(@_);
$self;
}
# init-Methode, die in Unterklassen übersteuert werden kann
sub _init {
my $self = shift;
$self->{wert} = shift;
}
sub Wert {
my $self = shift;
print "Wert original: ", $self->{wert}, "\n";
}
sub Laenge {
my $self = shift;
print "Laenge original: ", length($self->{wert}), "\n";
}
# Definition einer Unterklasse
package Unterklasse;
@ISA = qw(Klasse); # Definition der Unterklasse
# die Methode "new" wird vererbt.
# auf keine Fall neu definieren.
# Stattdessen _init definieren.
# Uebersteuern einer Funktion
sub Print {
my $self = shift;
print "Print uebersteuert: ", $self->{wert}, "\n";
}
# Hauptprogramm
package main;
$o = Unterklasse->new('wert'); # Erzeugung eines neuen Objekts
$o->Print(); # Aufruf der uebersteuerten Methode
$o->Laenge(); # Aufruf einer Originalmethode