[python] 클래스의 다형성
다형성은 객체 지향 프로그래밍에서 중요한 개념 중 하나입니다. 이 글에서는 파이썬을 예로 들어 클래스의 다형성을 소개하고, 실제 코드와 함께 설명하겠습니다.
다형성이란?
다형성은 같은 이름의 메소드를 여러 클래스에서 다르게 구현할 수 있는 기능을 말합니다. 이를 통해 다양한 객체를 동일한 인터페이스로 다룰 수 있어 코드의 유연성과 재사용성을 높일 수 있습니다.
다형성의 예시
다음은 도형을 나타내는 Shape
클래스와 이를 상속받는 Circle
과 Square
클래스의 예시입니다.
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
메소드가 각각 다르게 호출됨을 알 수 있습니다.
결론
다형성을 이용하면 코드의 재사용성을 높일 뿐 아니라 객체 간의 인터페이스를 통일하여 유지보수와 확장이 용이해집니다. 따라서, 객체 지향 프로그래밍에서 다형성은 중요한 원칙 중 하나로 여겨지고 있습니다.