상속은 객체 지향 프로그래밍에서 중요한 개념 중 하나입니다. 상속은 이미 존재하는 클래스를 기반으로 새로운 클래스를 만드는 방법입니다. 이를 통해 코드의 재사용성이 증가하고 코드의 구조가 개선됩니다.
부모 클래스(또는 슈퍼 클래스)에서 정의한 속성과 메서드를 자식 클래스(또는 서브 클래스)들이 상속받아 사용할 수 있습니다. 자식 클래스는 필요한 경우에 이러한 속성과 메서드를 추가하거나 수정하여 자신의 특정한 동작을 구현할 수 있습니다.
아래는 Python에서 상속을 구현하는 간단한 예제 코드입니다. 클래스 `Animal`은 기본 동물의 특성을 가지고 있으며, `Dog`와 `Cat` 클래스는 `Animal` 클래스를 상속받아 각각 독특한 특성을 추가합니다.
```python
class Animal:
def __init__(self, name):
self.name = name
def speak(self):
print("동물이 소리를 냅니다.")
class Dog(Animal):
def __init__(self, name, breed):
super().__init__(name)
self.breed = breed
def speak(self):
print("멍멍!")
class Cat(Animal):
def __init__(self, name):
super().__init__(name)
def speak(self):
print("야옹!")
dog = Dog("맥스", "불독")
cat = Cat("마이크")
print(dog.name) # 출력: 맥스
print(dog.breed) # 출력: 불독
dog.speak() # 출력: 멍멍!
print(cat.name) # 출력: 마이크
cat.speak() # 출력: 야옹!
```
위의 예제에서는 `Animal` 클래스를 정의한 후 `Dog`와 `Cat` 클래스에서 이를 상속받습니다. 자식 클래스는 생성자 `__init__` 메서드를 재정의하여 자신만의 속성을 추가하고, `speak` 메서드를 재정의하여 자신만의 메시지를 출력합니다. 상속 받은 부모 클래스의 속성 `name`은 자식 클래스에서도 사용할 수 있습니다.
이와 같이 클래스 상속을 통해 자식 클래스는 부모 클래스의 속성과 메서드를 재사용할 수 있고, 필요한 경우에 이를 확장하거나 수정하여 새로운 기능을 추가할 수 있습니다. 이는 코드 작성의 효율성을 높여주고, 코드의 가독성과 유지보수성을 향상시킵니다.
Python 공식 문서에서 상속에 관한 자세한 내용을 찾을 수 있습니다: [Python 상속 문서](https://docs.python.org/ko/3/tutorial/classes.html#inheritance)
댓글