프로그래밍언어/파이썬[초급]
[파이썬][초급] Chapter43. 상속과 오버라이딩
about_IT
2025. 5. 17. 05:15
728x90
객체지향 프로그래밍에서 상속은 기존 클래스의 기능을 확장하거나 수정하여 새로운 클래스를 만드는 데 사용됩니다. 오버라이딩은 부모 클래스의 메서드를 자식 클래스에서 재정의하는 개념입니다. 이번 장에서는 상속과 오버라이딩의 개념과 활용법을 배워봅니다.
● 상속의 기본
상속은 클래스 정의 시 괄호 안에 부모 클래스 이름을 넣어 구현합니다.
class Animal:
def speak(self):
print("동물이 소리를 냅니다.")
class Dog(Animal):
def bark(self):
print("멍멍!")
dog = Dog()
dog.speak() # 부모 클래스 메서드
dog.bark() # 자식 클래스 메서드
● 오버라이딩
부모 클래스의 메서드를 자식 클래스에서 재정의하면 오버라이딩이 됩니다.
class Dog(Animal):
def speak(self):
print("강아지가 짖습니다.")
dog = Dog()
dog.speak() # 오버라이딩된 메서드 실행
● super() 함수
super()
를 사용하면 자식 클래스에서 부모 클래스의 메서드를 호출할 수 있습니다.
class Cat(Animal):
def speak(self):
super().speak()
print("고양이가 야옹합니다.")
● 생성자 오버라이딩
자식 클래스에서 __init__()
을 오버라이딩할 경우, super().__init__()
를 호출해 부모 초기화 코드를 포함시킬 수 있습니다.
class Person:
def __init__(self, name):
self.name = name
class Student(Person):
def __init__(self, name, major):
super().__init__(name)
self.major = major
● 다중 상속
파이썬은 여러 클래스를 동시에 상속받을 수 있습니다.
class A:
def show(self):
print("A")
class B:
def show(self):
print("B")
class C(A, B):
pass
c = C()
c.show() # MRO에 따라 A 우선
● 마무리
이번 장에서는 상속, 오버라이딩, super() 사용법, 다중 상속의 개념을 익혔습니다. 상속을 통해 코드의 재사용성과 확장성을 높일 수 있으며, 오버라이딩은 유연한 기능 구현에 핵심적인 역할을 합니다. 다음 장에서는 캡슐화와 접근 제어자에 대해 학습합니다.
728x90