본문 바로가기
프로그래밍 언어(Programming Languages)/파이썬(Python)

[Python] 부모와 자식의 관계: 클래스 상속 탐험하기 🚴‍♂️

by 데이터 벌집 2023. 11. 8.

🌼 오늘은 Python의 객체 지향 프로그래밍의 핵심 주제 중 하나인 '클래스 상속'에 대해 알아볼 거예요. 상속을 통해 어떻게 효율적으로 코드를 재사용할 수 있는지, 함께 알아봐요! 🎈

클래스 상속


1. 클래스 상속이란? 🧐

 

클래스 상속은 기존의 클래스를 기반으로 새로운 클래스를 생성하는 것을 의미해요. 이때 기존의 클래스를 '부모 클래스' 또는 '기반 클래스', 새로운 클래스를 '자식 클래스' 또는 '파생 클래스'라고 부릅니다.


2. 왜 상속을 사용할까? 🤷‍♀️

상속을 사용하면 기존 클래스의 속성이나 메서드를 재사용할 수 있어요. 즉, 중복된 코드를 줄이고 효율적으로 프로그램을 작성할 수 있습니다. 👍


3. 상속의 기본 문법 📘

class 부모클래스:
    ...

class 자식클래스(부모클래스):
    ...

 

 

예제 1: 동물과 새 🦜

 

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

    def speak(self):
        pass

class Bird(Animal):
    def speak(self):
        return "짹짹!"

sparrow = Bird("참새")
print(sparrow.name)  # 참새
print(sparrow.speak())  # 짹짹!

 

 

위 예제에서 Bird 클래스는 Animal 클래스를 상속받았기 때문에, name 속성과 speak() 메서드를 가지고 있어요.


4. 메서드 오버라이드 🔄

자식 클래스에서 부모 클래스의 메서드를 새롭게 정의하는 것을 메서드 오버라이드라고 합니다.

 

예제 2: 동물의 소리 🐶🦁

class Dog(Animal):
    def speak(self):
        return "멍멍!"

class Lion(Animal):
    def speak(self):
        return "으르렁!"

dog = Dog("바둑이")
lion = Lion("심바")

print(dog.speak())  # 멍멍!
print(lion.speak())  # 으르렁!

5. super() 함수: 부모 클래스에 접근하기 ⚡

super() 함수를 사용하면 자식 클래스에서 부모 클래스의 메서드나 속성에 접근할 수 있어요

 

예제 3: 상속된 초기화 🚁

class Eagle(Bird):
    def __init__(self, name, wingspan):
        super().__init__(name)
        self.wingspan = wingspan

eagle = Eagle("독수리", 250)
print(eagle.name)  # 독수리
print(eagle.wingspan)  # 250

클래스 상속은 객체 지향 프로그래밍의 강력한 기능 중 하나로, 코드의 재사용성을 높여줍니다. 🎉 여러분도 상속을 활용하여 효율적인 프로그램을 작성해보세요! 💪🌟