Life of Lulu

Overerving in Python

Python bootcamp #100DaysOfCode #myNotes

Eén van de voordelen van object georiënteerd programmeren is dat je ook ouder/kind classes kunt aanmaken. Waarbij de kinderen attributen en methodes kunnen overerven van hun ouder.

Bij het aanmaken van de kind-class geef je als parameter de ouder-class mee. En in de init van de kind-class roep je de init van de ouder-class aan.

class Animal:
    def __init__(self):
        self.num_eyes = 2

    def breathe(self):
        print("Inhale, exhale.")

# als je wilt dat de class Fish ook de dingen heeft en kan als de class Animal,
# dan geef je deze class mee bij het definiëren van de class
# en in de eigen init spreek je de init van de Animal class aan.
# dit doe je met super().__init__()
class Fish(Animal):
    def __init__(self):
        super().__init__()

    def breathe(self): # bestaat al bij Animal, maar we willen wel wat extra's.
        super().breathe() # alles van de ouder class Animal
        print("doing this underwater.") # plus de extra's

    def swim(self):
        print("moving in water.")

nemo = Fish()
# het nemo object bevat ook de methoden en attributen van Animal.
nemo.breathe() # als deze in eigen class bestaat, voert hij die uit. Anders die van de ouder class.
print(nemo.num_eyes)

#100DaysOfCode #Python