ПочатиПочніть безкоштовно

Поліморфні методи

Щоб ефективно проєктувати класи, потрібно розуміти, як спадкування та поліморфізм працюють разом.

У цій вправі є три класи — один батьківський і два нащадки — у кожному визначено метод talk(). Проаналізуйте наведений код:

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

Яким буде вивід цього коду?

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!      

      

Ви маєте змогу виконати вправу, просто прочитавши код, без запуску в консолі!

Ця вправа є частиною курсу

Об'єктноорієнтоване програмування в Python

Переглянути курс

Практична інтерактивна вправа

Перетворіть теорію на практику за допомогою однієї з наших інтерактивних вправ

Почати вправу