파이썬(Python) 상속 기본 개념과 실전 예제
파이썬의 객체 지향 프로그래밍(OOP)에서 상속은 매우 중요한 개념입니다. 상속을 통해 코드 재사용성을 높이고, 계층 구조를 만들며, 기존 클래스를 확장하여 새로운 기능을 추가할 수 있습니다. 이번 글에서는 파이썬의 상속 개념과 함께 실전 예제를 통해 이해를 도울 것입니다.
1. 상속의 기본 개념
상속은 하나의 클래스가 다른 클래스의 속성과 메서드를 물려받는 것입니다. 부모 클래스(기본 클래스)와 자식 클래스(파생 클래스) 간의 관계가 형성됩니다. 이를 통해 기존 코드를 재사용하고, 새로운 기능을 추가하거나 변경할 수 있습니다.
2. 기본 상속 예제
기본적인 상속을 이해하기 위해 간단한 예제를 살펴보겠습니다.
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 = Dog("Buddy")
print(dog.speak()) # 출력: Buddy says Woof!
3. 메서드 오버라이딩
자식 클래스에서 부모 클래스의 메서드를 재정의하는 것을 메서드 오버라이딩이라고 합니다. 이를 통해 자식 클래스에서 고유한 동작을 정의할 수 있습니다.
class Cat(Animal):
def speak(self):
return f"{self.name} says Meow!"
cat = Cat("Kitty")
print(cat.speak()) # 출력: Kitty says Meow!
4. super() 함수 사용법
super()
함수는 부모 클래스의 메서드를 호출하는 데 사용됩니다. 이를 통해 자식 클래스에서 부모 클래스의 초기화 메서드나 다른 메서드를 사용할 수 있습니다.
class Bird(Animal):
def __init__(self, name, can_fly):
super().__init__(name)
self.can_fly = can_fly
def speak(self):
return f"{self.name} says Tweet!"
bird = Bird("Tweety", True)
print(bird.speak()) # 출력: Tweety says Tweet!
5. 다중 상속
파이썬에서는 다중 상속을 지원합니다. 즉, 하나의 자식 클래스가 둘 이상의 부모 클래스로부터 상속받을 수 있습니다. 하지만 다중 상속은 복잡성을 증가시킬 수 있으므로 신중하게 사용해야 합니다.
class Flyer:
def fly(self):
return "Flying high!"
class Swimmer:
def swim(self):
return "Swimming deep!"
class Duck(Animal, Flyer, Swimmer):
def speak(self):
return f"{self.name} says Quack!"
duck = Duck("Daffy")
print(duck.speak()) # 출력: Daffy says Quack!
print(duck.fly()) # 출력: Flying high!
print(duck.swim()) # 출력: Swimming deep!
6. 실전 예제: 상속을 활용한 확장
상속을 활용하여 기존 클래스를 확장하고 새로운 기능을 추가하는 방법을 실전 예제로 살펴보겠습니다.
class Vehicle:
def __init__(self, make, model):
self.make = make
self.model = model
def start_engine(self):
return "Engine started"
class Car(Vehicle):
def __init__(self, make, model, doors):
super().__init__(make, model)
self.doors = doors
def start_engine(self):
return f"{self.make} {self.model} with {self.doors} doors: Engine started"
car = Car("Toyota", "Corolla", 4)
print(car.start_engine()) # 출력: Toyota Corolla with 4 doors: Engine started
7. 결론
상속은 객체 지향 프로그래밍에서 매우 강력한 도구입니다. 이를 통해 코드의 재사용성을 높이고, 계층 구조를 형성하여 유지보수를 쉽게 할 수 있습니다. 이번 가이드를 통해 파이썬의 상속 개념과 다양한 예제를 살펴보았습니다. 실제 프로젝트에서 상속을 효과적으로 활용해 보세요.
'프로그래밍 언어 > 파이썬' 카테고리의 다른 글
파이썬(Python) 캡슐화, 접근 제어와 정보 은닉 (0) | 2024.08.09 |
---|---|
파이썬(Python) 다형성, 메서드 오버라이딩과 인터페이스 (0) | 2024.08.08 |
파이썬(Python) 클래스와 객체 기본 개념과 실전 예제 (0) | 2024.08.06 |
파이썬(Python) 객체 지향 프로그래밍 이해하기 (0) | 2024.08.05 |
파이썬(Python) 표준 라이브러리 필수 모듈과 사용법 (0) | 2024.08.03 |