Jetzt wird geerbt

Die Klasse "Moderner_Zaehler" wird mit Hilfe des Editors in der Datei "zaehler.py" abgelegt:

from zaehler0 import *

class Moderner_Zaehler(Zaehler):            # Vererbung ohne Überschreibung
  def __init__(self):                       # von Methoden (nur Erweiterungen)
     Zaehler.__init__(self)
    
  def herunterzaehlen(self):
    self.zaehlvar=self.zaehlvar-1

  def setzen(self,wert):
    self.zaehlvar=wert


Erläuterungen zum Quelltext:

python.gif Sie haben soeben die Klasse "Moderner_Zaehler" programmiert.
Soll eine Vererbung stattfinden, so wird der "Beerbte" hinter dem neuen Klassennamen in Klammern angegeben. Natürlich muß die entsprechende Klasse importiert werden (s. 1. Zeile). Im Initialisierungsteil für die neue Klasse (besser: für Objekte, die aus dieser Klasse erzeugt werden) wird die Initialisierung der beerbten Klasse aufgerufen. Damit stehen der Klasse "Moderner_Zähler" die erforderliche Zählvariable und die Methoden aus "Zaehler" zur Verfügung.

Erstellen Sie mit Hilfe des Texteditors in Ihrem Arbeitsverzeichnis eine weitere Datei mit dem Namen "main2.py" und folgendem Inhalt:


#! /usr/bin/python from zaehler import * mein_Zaehler=Moderner_Zaehler() dein_Zaehler=Moderner_Zaehler() mein_Zaehler.setzen(100) dein_Zaehler.setzen(90) while mein_Zaehler.hat_Zaehlerstand() != dein_Zaehler.hat_Zaehlerstand(): dein_Zaehler.hochzaehlen() mein_Zaehler.herunterzaehlen() print str(mein_Zaehler.hat_Zaehlerstand())+" "+ \ str(dein_Zaehler.hat_Zaehlerstand())
Erläuterungen zum Quelltext:

Drei Dinge sind zu erklären:

  1. Die Konstruktion "while Bedingung :" stellt eine vorprüfende Wiederholung dar, bei der der Schleifenkörper durch die Einrückung bestimmt wird.
  2. Quelltextzeilen, die zu lang geraten sind, lassen sich auf mehrere Zeilen verteilen. Dazu muss das Zeichen \ als letztes Zeichen einer Zeile stehen!
  3. Die interne Funktion "str" wandelt die vom Zähler gelieferte Zahl in eine Zeichenkette (String) um, damit die Ausgabe mit "print" erfolgen kann.

Starten Sie nun das Programm "main2.py" durch Eingabe seines Namens (chmod 755 nicht vergessen). Sie erhalten als Bildschirmausgabe:

99	91
98	92
97	93
96	94
95	95


Darstellung der Vererbung in UML:

Vererbung
zurück

Dr. Bernd Kokavecz
15.12.99