Vererbung

Vererbung ist ein wichtiges Konzept der objektorientierten Programmierung. Dabei “vererbt” die Basis-Klasse ihre Attribute und Methoden an eine Sub-Klasse. In dieser können weitere Eigenschaften hinzukommen oder die der Basis-Klasse angepasst werden.

Um eine Sub-Klasse zu erstellen, müssen wir die Basis-Klasse in Klammern hinter die neue Sub-Klasse schreiben.

class subclass(Smiley):
    pass

Der Konstruktor der Basis-Klasse wird ebenfalls in der der neuen Sub-Klasse aufgerufen, um ein Erben aller Eigenschaften zu ermoeglichen. Außerdem fügen wir der Sub-Klasse ein weiteres Attribut für eine zweite Farbe hinzu.

class subclass(Smiley):
    def __init__(self, col,col2):
        Smiley.__init__(self,col)
        self.col2=col2

Anschliessend erstellen wir die Methode laugh, die beim Betätigen der Leertaste einen lachenden Smiley erstellt:

def laugh(self, x_pos, y_pos, size_xy):
    if keyPressed and key == ' ':
        fill(self.col)
        ellipse(x_pos, y_pos, size_xy, size_xy)
        fill(0) 
        ellipse(x_pos - size_xy * .2, y_pos - size_xy * .12, size_xy * .2, size_xy * .2)
        ellipse(x_pos + size_xy * .2, y_pos - size_xy * .12, size_xy * .2, size_xy * .2)
        fill(self.col2) 
        arc(x_pos, y_pos, size_xy * .75, size_xy * .75, radians(25), radians(155),CHORD);
        fill(self.col)

Um die neue Klasse zu Nutzen importieren wir sie ebenfalls.

from Smiley import Smiley, subclass

Subklasse=subclass('#f5f242','#0ffff0')

def setup():
    
    size(200,200)
    
def draw():
    Subklasse.paint(50,50,50)   
    Subklasse.laugh(50,50,50)

Führen wir den Code aus, stellen wir fest, dass die Sub-Klasse die Methode paint() aus der Basis-Klasse übernommen hat.

Zwar nur bedingt aus unserem Beispiel abzuleiten, verspricht das Konzept der Vererbung einen strukturierten und modularen Code.

Verstanden
Um die Inhalte auf dieser Website optimal für Sie anbieten zu können, verwenden wir Cookies. Mehr erfahren