클래스에서 상속을 통해 어떻게 메서드를 재사용할 수 있나요?

다음은 상속을 사용하여 메서드를 재사용하는 간단한 예시입니다.

class Animal:
    def __init__(self, name):
        self.name = name
    
    def speak(self):
        print("동물이 소리를 낸다.")

class Cat(Animal):
    def __init__(self, name):
        super().__init__(name)
    
    def speak(self):
        print(f"{self.name}가 야옹 소리를 낸다.")

animal = Animal("동물")
cat = Cat("야옹이")

animal.speak()  # 동물이 소리를 낸다.
cat.speak()  # 야옹이가 야옹 소리를 낸다.

위의 예시에서 Animal 클래스는 speak 메서드를 가지고 있습니다. 이 클래스를 상속받은 Cat 클래스 역시 speak 메서드를 가지고 있지만, 그 내용은 다릅니다.

super() 함수를 사용하여 부모 클래스의 생성자를 호출하고, 그 외의 동작을 추가할 수 있습니다. 이를 통해 부모 클래스의 메서드를 재사용하면서 자식 클래스에서 추가적인 로직을 수행할 수 있습니다.

상속을 통해 부모 클래스의 메서드를 재사용하면 코드의 중복을 방지하고 유지보수성을 높일 수 있습니다.