파이썬 : 상속과 다형성
파이썬은 강력하면서도 유연한 프로그래밍 언어로, 객체 지향 프로그래밍의 핵심 개념 중 하나인 '상속'과 '다형성'을 효과적으로 지원합니다.
파이썬의 상속과 다형성에 대해 자세히 알아보겠습니다.
1. 상속 (Inheritance)
상속은 객체 지향 프로그래밍에서 코드의 재사용성을 높이고 클래스 간의 계층 구조를 형성하는 핵심적인 기능입니다. 부모 클래스에서 정의된 속성과 메서드를 자식 클래스에서 그대로 물려받아 사용할 수 있습니다.
1.1기본적인 상속 구조
class Animal:
def __init__(self, name):
self.name = name
def speak(self):
pass
class Dog(Animal):
def speak(self):
return f"{self.name} says Woof!"
위의 예제에서 Dog 클래스는 Animal 클래스를 상속받았습니다. 이제 Dog 클래스는 Animal 클래스의 모든 속성과 메서드를 사용할 수 있습니다. 예를 들어, speak 메서드를 호출하면 "Woof!"라는 문자열을 반환합니다.
2. 다형성 (Polymorphism)
파이썬은 다형성을 강력하게 지원하여 같은 메서드를 호출하더라도 다양한 객체에 대해 다양한 동작을 수행할 수 있습니다. 이는 코드의 유연성과 가독성을 향상시키는 데 도움이 됩니다.
2.1 다형성을 이용한 예제
def animal_speak(animal):
return animal.speak()
dog = Dog("Buddy")
cat = Cat("Whiskers")
print(animal_speak(dog)) # 출력: "Buddy says Woof!"
print(animal_speak(cat)) # 출력: "Whiskers says Meow!"
animal_speak 함수는 어떤 동물 객체든 받아들일 수 있습니다. 따라서 dog와 cat을 함수에 전달하여 각 동물이 맞는 소리를 내도록 할 수 있습니다.
3. 상속과 다형성의 조합 활용
파이썬에서는 상속과 다형성을 조합하여 강력하고 유연한 코드를 작성할 수 있습니다. 부모 클래스에서 공통적인 특징을 정의하고, 각 자식 클래스에서는 필요에 맞게 기능을 추가하거나 재정의함으로써 모듈화된 코드를 작성할 수 있습니다.
이처럼 파이썬은 상속과 다형성을 통해 객체 지향 프로그래밍의 장점을 최대한 활용할 수 있도록 지원하며, 이는 코드의 재사용성과 유지보수성을 높여줍니다. 프로그래머들은 이러한 기능들을 적극적으로 활용하여 더욱 효율적이고 간결한 코드를 작성할 수 있습니다. 파이썬의 매력은 바로 이러한 유연성과 간결함에서 비롯된다고 할 수 있겠습니다.