#!/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