IT

파이썬 클래스 상속받고 재정의하기

carnival6103 2025. 2. 5. 22:22
반응형

파이썬에서 클래스 상속을 통해 기존 클래스의 기능을 확장하거나 수정할 수 있습니다. 상속받은 클래스에서 메서드를 재정의(오버라이딩)하여 원하는 동작을 구현할 수 있습니다. 예제를 통해 설명해드릴게요.

1. 기본 클래스 정의

먼저, 기본 클래스를 정의합니다. 이 클래스에는 메서드가 포함되어 있습니다.

class Animal:
    def __init__(self, name):
        self.name = name

    def speak(self):
        return f"{self.name} makes a sound"

2. 클래스 상속

기본 클래스를 상속받아 새로운 클래스를 정의합니다. 이 새로운 클래스는 기본 클래스의 모든 속성과 메서드를 상속받습니다.

class Dog(Animal):
    def __init__(self, name, breed):
        super().__init__(name)  # 기본 클래스의 초기화 메서드 호출
        self.breed = breed

    def speak(self):
        return f"{self.name} barks"

3. 메서드 재정의

상속받은 클래스에서 기본 클래스의 메서드를 재정의(오버라이딩)할 수 있습니다. 위 예제에서 Dog 클래스는 Animal 클래스의 speak 메서드를 재정의하여 개가 짖는 소리를 내도록 합니다.

4. 클래스 사용

이제 상속받은 클래스를 사용하여 객체를 생성하고 메서드를 호출할 수 있습니다.

dog = Dog("Buddy", "Golden Retriever")
print(dog.speak())  # "Buddy barks" 출력

5. 추가 예제: 다중 상속

파이썬에서는 다중 상속도 가능합니다. 여러 클래스를 상속받아 새로운 클래스를 정의할 수 있습니다.

class Swimmer:
    def swim(self):
        return f"{self.name} is swimming"

class FlyingDog(Dog, Swimmer):
    def fly(self):
        return f"{self.name} is flying"

flying_dog = FlyingDog("Sky", "Border Collie")
print(flying_dog.speak())  # "Sky barks" 출력
print(flying_dog.swim())   # "Sky is swimming" 출력
print(flying_dog.fly())    # "Sky is flying" 출력

이렇게 하면 파이썬에서 클래스 상속과 메서드 재정의를 통해 객체 지향 프로그래밍을 효과적으로 구현할 수 있습니다. 추가로 궁금한 점이 있으면 언제든지 물어보세요! 😊

반응형