상속(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)
- 상속받은 메소드의 내용을 자식 클래스에서 변경하여 사용하는 것
- 상속받은 기능을 필요에 의해 맞게 변경하여 사용해야 하는 경우
상속의 장점
- 코드의 재사용성을 높일 수 있다
- 클래스간 계층 구조를 만들어 관련성 있는 클래스들을 그룹화하여 관리할 수 있다
- 부모 클래스의 코드를 다시 반복하여 작성할 필요가 없다