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)

More from Lucia
All posts