[python] 상속과 다형성을 함께 사용하는 예시

이 게시물에서는 Python에서 상속과 다형성을 함께 사용하는 예시를 살펴보겠습니다.

상속 (Inheritance)

Python에서 상속은 자식 클래스가 부모 클래스의 속성과 메서드를 상속받는 것을 의미합니다. 이를 통해 코드의 재사용성과 유지보수성을 높일 수 있습니다.

다음은 Animal 클래스를 정의하고, Dog 클래스가 Animal 클래스를 상속받는 예시입니다:

class Animal:
    def speak(self):
        pass

class Dog(Animal):
    def speak(self):
        return "Woof!"

위 예제에서 Dog 클래스는 Animal 클래스를 상속받아 speak 메서드를 오버라이딩하여 구현했습니다.

다형성 (Polymorphism)

다형성은 같은 이름의 메서드가 다른 클래스에서 다른 기능을 수행하는 것을 의미합니다.

다음은 make_sound 함수가 Animal 인스턴스를 매개변수로 받아서 해당 인스턴스의 speak 메서드를 호출하는 예시입니다:

def make_sound(animal):
    print(animal.speak())

dog = Dog()
make_sound(dog)  # 출력: "Woof!"

위 예제에서 make_sound 함수는 Animal 클래스의 다형성을 보여주고 있습니다. make_sound 함수는 Animal 클래스를 상속받은 Dog 클래스의 인스턴스를 매개변수로 받아서 speak 메서드를 호출하는데, 이때 Dog 클래스의 speak 메서드가 호출되었습니다.

이처럼 Python에서 상속과 다형성을 함께 사용하여 유연하고 재사용 가능한 코드를 작성할 수 있습니다.

결론

Python의 상속과 다형성은 객체지향 프로그래밍을 효율적으로 활용할 수 있도록 도와줍니다. 상속을 통해 코드의 재사용성을 높이고, 다형성을 통해 유연하고 확장 가능한 코드를 작성할 수 있습니다.

참고 문헌: