[파이썬] 부모 클래스와 자식 클래스

부모 클래스와 자식 클래스는 객체 지향 프로그래밍의 중요한 개념입니다. 이러한 개념은 코드의 재사용성과 유지보수성을 높일 수 있습니다. 부모 클래스는 공통된 속성과 메서드를 가지며, 자식 클래스는 부모 클래스를 상속받아 고유한 속성과 메서드를 추가할 수 있습니다.

클래스 정의하기

class 부모클래스:
    # 부모 클래스의 속성과 메서드 정의

class 자식클래스(부모클래스):
    # 자식 클래스의 속성과 메서드 정의

상속(inheritance)

자식 클래스는 부모 클래스의 속성과 메서드를 상속받습니다. 상속을 통해 부모 클래스의 기능을 그대로 사용하거나, 필요에 따라 수정하여 사용할 수 있습니다. 이를 통해 코드의 중복을 피하고 코드를 보다 재사용 가능하고 효율적으로 만들 수 있습니다.

예제 코드

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

    def sleep(self):
        print(f"{self.name} is sleeping.")

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

    def bark(self):
        print(f"{self.name} is barking.")

    def sleep(self):
        super().sleep()
        print(f"But {self.name} is snoring loudly.")

# 부모 클래스의 인스턴스 생성
animal = Animal("Generic Animal")
animal.sleep()

# 자식 클래스의 인스턴스 생성
dog = Dog("Max", "Golden Retriever")
dog.bark()
dog.sleep()

위 예제에서는 Animal이라는 부모 클래스를 정의하고, Dog라는 자식 클래스를 정의합니다. Dog 클래스는 Animal 클래스를 상속받아 name 속성과 sleep 메서드를 사용할 수 있습니다. 또한, Dog 클래스에는 고유한 breed 속성과 bark 메서드가 추가되어 있습니다.

부모 클래스와 자식 클래스는 동일한 메서드 이름을 가질 수 있습니다. 이때 자식 클래스에서 메서드를 재정의(override)하면 부모 클래스의 메서드 대신 자식 클래스의 메서드가 호출됩니다. 위 예제에서는 Dog 클래스의 sleep 메서드가 부모 클래스의 sleep 메서드를 호출한 뒤 추가적인 동작을 수행합니다.

자식 클래스는 부모 클래스의 속성과 메서드 외에도 고유한 속성과 메서드를 추가할 수 있습니다. 이를 통해 클래스 간의 계층 구조를 직관적으로 표현할 수 있고, 코드의 가독성과 유지보수성을 높일 수 있습니다.

부모 클래스와 자식 클래스를 적절히 활용하여 객체 지향 프로그래밍의 장점을 최대한 활용해보세요!