#!/usr/bin/perl -w
######################################################################
# (c) Michael Schilli 1999
######################################################################

###########################################################
package Base;              # Basisklasse

sub basemethod { print "Methode der Basisklasse\n"; }

###########################################################
package Derived;           # Abgeleitete Klasse

@ISA = qw(Base);           # Erbt von 'Base'

sub new {                  # Konstruktor
    my $class = shift;
    bless {}, $class;
}

sub basemethod {           # Redefiniert 'basemethod' von 
    my $self = shift;      # 'Base', nutzt aber deren 
                           # Funktionalität                           

                           # Aufruf der Methode in 'Base'
    $self->SUPER::basemethod();

                           # ... Zusätzliche 
                           #     Funktionalität ...
    print "Methode der abgeleiteten Klasse\n";
}

###########################################################
package main;              # Hauptprogramm

$dobj = Derived->new();    # Objekt anlegen

$dobj->basemethod();       # ... nutzt abgeleitete 
                           #     und Basisklasse.
