Zacznij terazZacznij za darmo

Metody polimorficzne

Aby projektować klasy w sposób efektywny, trzeba rozumieć, jak dziedziczenie i polimorfizm współpracują ze sobą.

W tym ćwiczeniu masz trzy klasy – jedną nadrzędną i dwie podrzędne – z których każda ma metodę talk(). Przeanalizuj poniższy 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()

Jaki jest wynik działania powyższego kodu?

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!      

      

Powinieneś móc rozwiązać to ćwiczenie, czytając wyłącznie kod – bez uruchamiania go w konsoli!

To ćwiczenie jest częścią kursu

Programowanie obiektowe w Pythonie

Zobacz kurs

Interaktywne ćwiczenie praktyczne

Przekształć teorię w praktykę dzięki jednemu z naszych interaktywnych ćwiczeń

Rozpocznij ćwiczenie