Aan de slagGa gratis aan de slag

Polymorfe methoden

Om klassen effectief te ontwerpen, moet je begrijpen hoe overerving en polymorfisme samenwerken.

In deze oefening heb je drie klassen – één ouder en twee kinderen – die elk een talk()-methode hebben. Analyseer de volgende code:

class Parent:
    def talk(self):
        print("Parent talking!")     

class Child(Parent):
    def talk(self):
        print("Child talking!")          

class TalkativeChild(Parent):
    def talk(self):
        print("TalkativeChild talking!")
        Parent.talk(self)


p, c, tc = Parent(), Child(), TalkativeChild()

for obj in (p, c, tc):
    obj.talk()

Wat is de output van de bovenstaande code?

1. 2.

Parent talking!
Parent talking!
Parent talking!      

      

Parent talking!
Child talking!
Talkative Child talking!     
      
      
3. 4.

Parent talking!
Child talking!
Parent talking! 
Talkative Child talking!
Parent talking!      
      
      

Parent talking!
Child talking!
Talkative Child talking!
Parent talking!      

      

Je zou deze oefening moeten kunnen maken door alleen de code te lezen, zonder hem in de console uit te voeren!

Deze oefening maakt deel uit van de cursus

Objectgeoriënteerd programmeren in Python

Cursus bekijken

Praktische interactieve oefening

Zet theorie om in actie met een van onze interactieve oefeningen.

Begin met trainen