Kom igångKom igång gratis

Polymorfiska metoder

För att designa klasser på ett effektivt sätt behöver du förstå hur arv och polymorfism fungerar tillsammans.

I den här övningen har du tre klasser – en föräldraklass och två barnklasser – där var och en har en talk()-metod. Analysera följande kod:

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()

Vad är utdata från koden ovan?

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!      

      

Du ska kunna lösa övningen enbart genom att läsa koden – utan att köra den i konsolen!

Den här övningen är en del av kursen

Objektorienterad programmering i Python

Visa kurs

Interaktiv övning med praktiskt arbete

Gör teori till handling med en av våra interaktiva övningar

Starta övningen