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)