시작하기무료로 시작하기

다형적 메서드

클래스를 효과적으로 설계하려면 상속과 다형성이 어떻게 함께 작동하는지 이해해야 해요.

이 연습에서는 부모 1개와 자식 2개, 총 3개의 클래스가 있으며, 각 클래스는 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의 객체 지향 프로그래밍

강의 보기

실습형 인터랙티브 연습문제

이론을 실습으로 바꾸는 인터랙티브 연습 중 하나를 만나보세요

연습 시작