📚 Chapter 8-6. 상속
1️⃣ 상속의 개념
- 상속은 기존에 작성된 클래스(부모 클래스)의 속성과 메서드를 새로운 클래스(자식 클래스)에서 물려받아 사용하는 개념입니다.
- 코드를 재사용하고, 확장성이 높은 프로그램을 설계할 수 있도록 도와줍니다.
2️⃣ 다중 상속
- 다중 상속은 여러 부모 클래스로부터 속성과 메서드를 물려받는 방식입니다.
- 자식 클래스는 부모 클래스의 속성과 메서드를 자유롭게 사용할 수 있습니다.
class Parent:
def __init__(self):
self.value = "테스트" # 인스턴스 변수 초기화
print("Parent 클래스의 __init__() 메소드가 호출되었습니다.")
def test(self):
print("Parent 클래스의 test() 메소드입니다.")
class Child(Parent):
def __init__(self):
super().__init__() # 부모 클래스의 생성자 호출
print("Child 클래스의 __init__() 메소드가 호출되었습니다.")
child = Child()
child.test() # 부모 클래스의 메서드 호출
print(child.value) # 부모 클래스에서 초기화된 인스턴스 변수 출력
📋 출력 결과
Parent 클래스의 __init__() 메소드가 호출되었습니다.
Child 클래스의 __init__() 메소드가 호출되었습니다.
Parent 클래스의 test() 메소드입니다.
테스트
⚡ 포인트
- Child 클래스는 Parent 클래스를 상속받아, 부모 클래스의 변수와 메서드를 사용할 수 있습니다.
- super()를 사용하여 부모 클래스의 __init__() 메서드를 호출하면, 부모 클래스의 초기화 코드가 실행됩니다.
✅ 이해도 체크리스트
- 상속의 가장 큰 이유는 무엇인가요?
- 정답: 코드 재사용성과 확장성 향상
- 설명: 이미 작성된 부모 클래스의 코드(속성과 메서드)를 자식 클래스에서 그대로 사용할 수 있어 코드 중복을 줄이고 유지보수를 용이하게 합니다.
- 자식 클래스는 어떻게 만들어지나요?
- 정답: 부모 클래스를 상속하여 정의합니다. class 자식클래스(부모클래스):
- 설명: 자식 클래스는 class Child(Parent): 형식으로 작성하여 부모 클래스의 기능을 상속받습니다.
- super() 함수는 무엇인가요?
- 정답: 부모 클래스의 메서드를 호출하기 위해 사용합니다.
- 설명: super()는 자식 클래스에서 부모 클래스의 메서드(__init__() 등)를 호출할 때 사용되며, 코드의 가독성을 높이고 유지보수를 쉽게 만들어줍니다.
- 자식 클래스에서 부모 클래스의 메서드를 사용할 수 있나요?
- 정답: 네, 부모 클래스에서 정의된 메서드는 자식 클래스에서 자유롭게 사용할 수 있습니다.
- 설명: 자식 클래스는 상속받은 부모 클래스의 모든 메서드와 변수에 접근할 수 있습니다.
- Child 클래스가 Parent 클래스의 메서드를 오버라이드하고 싶다면 어떻게 해야 하나요?
- 정답: 자식 클래스에서 부모 클래스와 동일한 이름의 메서드를 새롭게 정의하면 됩니다.
- 설명: 이렇게 하면 부모 클래스의 메서드 대신, 자식 클래스에서 정의한 메서드가 호출됩니다. 이를 '메서드 오버라이딩'이라고 합니다.
- Child 클래스에서 부모 클래스의 __init__() 메서드가 자동으로 호출되나요?
- 정답: 아니요, 자동으로 호출되지 않으며, super().__init__()을 통해 명시적으로 호출해야 합니다.
- 설명: 파이썬에서는 부모 클래스의 생성자가 자동으로 호출되지 않기 때문에 super()로 직접 호출해주어야 합니다.
'Python' 카테고리의 다른 글
PYTHON - 클래스 고급(Chapter 8-46. 프라이빗 변수) (0) | 2025.03.17 |
---|---|
PYTHON - 클래스 고급 (Chapter 8-45. 클래스 변수와 메소드) (0) | 2025.03.17 |
PYTHON - 클래스 고급 (Chapter 8-45. 인스턴스와 특수 메소드) (0) | 2025.03.17 |
PYTHON - 클래스 고급(Chapter 8-44. 생성자와 메소드) (0) | 2025.03.17 |
PYTHON - 클래스 고급 (Chapter 8-43. 객체와 클래스 선언하기) (0) | 2025.03.17 |