프로그래밍언어/파이썬[초급]

[파이썬][초급] 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