[python] 클래스의 다형성

다형성은 객체 지향 프로그래밍에서 중요한 개념 중 하나입니다. 이 글에서는 파이썬을 예로 들어 클래스의 다형성을 소개하고, 실제 코드와 함께 설명하겠습니다.

다형성이란?

다형성은 같은 이름의 메소드를 여러 클래스에서 다르게 구현할 수 있는 기능을 말합니다. 이를 통해 다양한 객체를 동일한 인터페이스로 다룰 수 있어 코드의 유연성과 재사용성을 높일 수 있습니다.

다형성의 예시

다음은 도형을 나타내는 Shape 클래스와 이를 상속받는 CircleSquare 클래스의 예시입니다.

class Shape:
    def area(self):
        pass

class Circle(Shape):
    def __init__(self, radius):
        self.radius = radius
    def area(self):
        return 3.14 * self.radius ** 2

class Square(Shape):
    def __init__(self, side):
        self.side = side
    def area(self):
        return self.side ** 2

위 코드에서 Shape 클래스는 추상클래스로 메소드 area를 정의하고 있습니다. 이후 Circle 클래스와 Square 클래스에서 각각의 형태에 맞게 area 메소드를 구현하고 있습니다.

이제, 이들을 이용해 다음과 같이 여러 도형을 리스트로 관리할 수 있습니다.

shapes = [Circle(5), Square(3)]
for shape in shapes:
    print(shape.area())

위 예시에서 shapes 리스트에는 Circle 객체와 Square 객체가 혼합되어 있지만, 각 객체의 area 메소드가 각각 다르게 호출됨을 알 수 있습니다.

결론

다형성을 이용하면 코드의 재사용성을 높일 뿐 아니라 객체 간의 인터페이스를 통일하여 유지보수와 확장이 용이해집니다. 따라서, 객체 지향 프로그래밍에서 다형성은 중요한 원칙 중 하나로 여겨지고 있습니다.