파이썬 상속(Inheritance)
파이썬은 객체 지향 프로그래밍(OOP)을 지원하여 코드를 효율적으로 구조화하고 유지보수하기 쉽게 만들어줍니다.
상속(Inheritance)은 OOP의 중요한 개념 중 하나로,
클래스들 간의 관계를 설정하여 코드의 재사용성과 확장성을 높이는데 도움을 줍니다.
이번 블로그에서는 파이썬 상속에 대해 상세히 알아보고,
상속을 사용하여 어떻게 코드를 구성하고 개선할 수 있는지 살펴보겠습니다.
1. 상속이란?
상속은 기존의 클래스로부터 새로운 클래스를 만드는 과정입니다.
기존 클래스는 부모 클래스(Parent Class) 또는 슈퍼 클래스(Super Class)라고도 하며,
새로운 클래스는 자식 클래스(Child Class) 또는 서브 클래스(Sub Class)라고도 합니다.
자식 클래스는 부모 클래스의 속성과 메서드를 상속받아 사용할 수 있으며,
필요에 따라 새로운 속성과 메서드를 추가하여 확장할 수 있습니다.
2. 상속의 문법
파이썬에서 클래스를 상속하는 문법은 다음과 같습니다.
class ParentClass:
# 부모 클래스의 속성과 메서드 정의
class ChildClass(ParentClass):
# 자식 클래스의 속성과 메서드 정의
3. 상속의 장점
- 코드의 재사용
- 상속을 사용하면 기존 클래스의 코드를 그대로 활용하여 새로운 클래스를 정의할 수 있습니다.
- 이로 인해 코드의 중복을 피하고 프로그램의 생산성을 높일 수 있습니다.
- 확장성
- 자식 클래스는 부모 클래스의 기능을 물려받으면서 새로운 기능을 추가할 수 있습니다.
- 이로 인해 프로그램의 유지보수와 확장이 더욱 용이해집니다.
4. 상속의 사용 예시
class Animal:
def __init__(self, name):
self.name = name
def make_sound(self):
pass
class Dog(Animal):
def make_sound(self):
return "Woof!"
class Cat(Animal):
def make_sound(self):
return "Meow!"
# 객체 생성 및 메서드 호출
dog = Dog("Buddy")
cat = Cat("Whiskers")
print(dog.name) # 출력: "Buddy"
print(dog.make_sound()) # 출력: "Woof!"
print(cat.name) # 출력: "Whiskers"
print(cat.make_sound()) # 출력: "Meow!"
5. 메서드 오버라이딩
자식 클래스에서 부모 클래스의 메서드를 재정의하는 것을 메서드 오버라이딩(Method Overriding)이라고 합니다.
이를 통해 자식 클래스는 동일한 이름의 메서드를 가지지만, 다른 동작을 수행할 수 있습니다.
class ParentClass:
def say_hello(self):
return "Hello from ParentClass"
class ChildClass(ParentClass):
def say_hello(self):
return "Hello from ChildClass"
# 메서드 오버라이딩된 객체 생성
child = ChildClass()
print(child.say_hello()) # 출력: "Hello from ChildClass"
이번 블로그에서는 파이썬 상속에 대해 알아보았습니다.
상속은 객체 지향 프로그래밍의 중요한 개념으로, 클래스들 간의 관계를 설정하여 코드의 재사용성과 확장성을 높입니다.
부모 클래스의 속성과 메서드를 물려받으면서 새로운 기능을 추가하거나 변경함으로써 코드를 보다 유연하게 설계할 수 있습니다.
잘못된 정보는 댓글로 알려주시면 감사하겠습니다.
'Python' 카테고리의 다른 글
Python - 23. 파이썬 파일 쓰기(write) (0) | 2023.07.25 |
---|---|
Python - 22. 파이썬 오류 처리(Error Handling) (0) | 2023.07.24 |
Python - 20. 파이썬의 매직 메서드(Magic Method) (0) | 2023.07.22 |
Python - 19. 파이썬 객체 지향 프로그래밍(OOP : Object-Oriented Programing) (0) | 2023.07.21 |
Python - 18. 파이썬의 map함수 (0) | 2023.07.20 |