ComeçarComece gratuitamente

Métodos polimórficos

Para projetar classes de forma eficaz, você precisa entender como a herança e o polimorfismo funcionam juntos.

Neste exercício, você tem três classes (uma principal e duas secundárias) e cada uma delas tem um método talk(). Analise o código a seguir:

class Parent:

    def talk(self):

        print("Pai falando!")     


class Child(Parent):

    def talk(self):

        print("Criança falando!")          




class TalkativeChild(Parent):

    def talk(self):

        print("TalkativeChild falando!")

        Parent.talk(self)







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

for obj in (p, c, tc):

    obj.talk()

Qual é o resultado do código acima?

1. 2.


Pai falando!
Pai falando!
Pai falando!      


      


Pai falando!
Criança falando!
TalkativeChild falando!     
      

      
3. 4.


Pai falando!
Criança falando!
Pai falando! 
TalkativeChild falando!
Pai falando!      
      

      


Pai falando!
Criança falando!
TalkativeChild falando!
Pai falando!      


      

Você deve ser capaz de concluir o exercício apenas lendo o código, sem executá-lo no console!

Este exercício faz parte do curso

Programação orientada a objetos em Python

Ver Curso

Exercício interativo prático

Transforme a teoria em ação com um de nossos exercícios interativos

Comece o exercício