[python] 클래스 상속과 다형성의 차이점

파이썬은 객체 지향 프로그래밍 언어로, 클래스 상속과 다형성을 지원합니다. 이 두 가지 개념은 객체 지향 프로그래밍에서 중요한 역할을 합니다. 이번에는 파이썬에서 클래스 상속과 다형성의 차이점에 대해 알아보겠습니다.

클래스 상속

클래스 상속은 이미 존재하는 클래스를 기반으로 하여 새로운 클래스를 정의하는 것을 말합니다. 기존 클래스의 모든 속성과 메서드를 상속받으면서, 새로운 속성이나 메서드를 추가하거나 기존의 것을 변경할 수 있습니다. 이를 통해 코드의 재사용성을 높이고 유지보수를 쉽게 할 수 있습니다.

아래는 클래스 상속의 간단한 예시입니다.

class Animal:
    def sound(self):
        print("Some sound")

class Dog(Animal):
    def sound(self):
        print("Bark")

위 예시에서 Dog 클래스는 Animal 클래스를 상속받아 sound 메서드를 오버라이딩(재정의)하여 개의 짖는 소리인 “Bark”로 변경하고 있습니다.

다형성

다형성은 같은 이름의 메서드나 함수 호출에 대해 서로 다른 동작을 하는 것입니다. 파이썬은 다형성을 동적으로 지원하며, 오버라이딩된 메서드를 호출할 때 해당 객체의 타입에 따라 적절한 메서드를 호출합니다.

아래는 다형성의 간단한 예시입니다.

def make_sound(animal):
    animal.sound()

dog = Dog()
cat = Cat()

make_sound(dog)  # "Bark" 출력
make_sound(cat)  # "Meow" 출력

위 예시에서 make_sound 함수는 인자로 받는 animal 객체의 sound 메서드를 호출합니다. 이때 실제 호출되는 메서드는 animal 객체의 실제 타입에 따라 다르게 결정됩니다.

결론

클래스 상속은 클래스들 간의 계층 구조를 형성하여 코드를 재사용하고 유지보수하기 쉽게 만들어주며, 다형성은 같은 메서드나 함수 호출에 대해 다양한 객체들이 서로 다른 동작을 할 수 있도록 합니다.

이렇듯 클래스 상속과 다형성은 객체 지향 프로그래밍에서 매우 중요한 개념으로, 파이썬에서도 유연하게 활용될 수 있습니다.

참고 문헌