상속(Inheritance), 오버라이딩(Overriding)

김서연·2024년 4월 22일

python

목록 보기
4/4

상속(Inheritance)

  • 하나의 클래스가 다른 클래스로부터 메소드의 속성을 그대로 물려받아 사용할 수 있는 기능
  • 부모 클래스(Parent Class), 상위 클래스(Super Class): 자신의 메소드와 속성을 물려 주는 클래스
  • 자식 클래스(Child Class) 또는 하위 클래스(Sub Class): 메소드와 속성을 물려받아 사용하는 클래스

파이썬에서 상속 구현

  • 자식 클래스의 괄호 안에 부모 클래스 명시하기
class Animal:
    def __init__(self, name):
        self.name = name
    
    def speak(self):
        return "동물이 울음소리를 냅니다"

class Dog(Animal):
	def __init__(self, name, age):
        super().__init__(name)
        self.age = age
    
    def speak(self):
        return "멍멍!"

my_dog = Dog("초코")
print(my_dog.name)  # 출력: 초코
print(my_dog.speak())  # 출력: 멍멍!
  • Dog 클래스는 Animal 클래스의 모든 속성과 클래스를 상속받는다
  • 자식클래스에서 부모 클래스의 내용을 사용하고 싶은 경우 super() 를 이용한다
    • __init__ 에서 name을 super()로 처리

오버라이딩(Overriding)

  • 상속받은 메소드의 내용을 자식 클래스에서 변경하여 사용하는 것
  • 상속받은 기능을 필요에 의해 맞게 변경하여 사용해야 하는 경우

상속의 장점

  • 코드의 재사용성을 높일 수 있다
  • 클래스간 계층 구조를 만들어 관련성 있는 클래스들을 그룹화하여 관리할 수 있다
  • 부모 클래스의 코드를 다시 반복하여 작성할 필요가 없다
profile
가보자고! 🔥

0개의 댓글