어떤 클래스를 만들 때 다른 클래스의 기능을 그대로 가지고 올 수 있다.
이 때, 물려주는 클래스를 부모클래스(super class), 자식클래스(sub class)라고 한다.
상속을 이용하면 중복코드가 작성되는 것을 방지, 코드의 유지보수가 굉장히 수월해진다.
- 상속법 (부모클래스 정의 후, 자식클래스 정의)
class 부모클래스:
class 자식클래스 (부모클래스):
c# 또는 java는 다중상속이 불가능하다. 파이썬은 c++ 과 같이 다중상속이 가능하다.
- 다중상속법
class 부모클래스1:
class 부모크래스2:
class 자식클래스(부모클래스1, 부모클래스2):
상속관계를 확인할 수 있는 메소드이다.
- 사용법
클래스명.mro()
오버라이딩은 부모클래스의 메소드를 자식클래스에서 재정의 하는 것이다.
* 오버라이딩 예제
class Country:
"""Super Class"""
name = '국가명'
population = '인구'
capital = '수도'
def show(self):
print('국가 클래스의 메소드입니다.')
class Korea(Country):
"""Sub Class"""
def __init__(self, name,population, capital):
self.name = name
self.population = population
self.capital = capital
def show(self):
print(
"""
국가의 이름은 {} 입니다.
국가의 인구는 {} 입니다.
국가의 수도는 {} 입니다.
""".format(self.name, self.population, self.capital)
)
... 생략
부모 클래스의 show()메소드는 무시되고 자식클래스의 show()메소드가 수행된다.
파이썬은 함수의 오버로딩이 지원되지 않는다.