상속의 개념은 C/C++에서 다뤘으므로 구현하는 방법만 다룬다.
파이썬에서 클래스 상속은 클래스를 만들때 괄호에 기반 클래스의 이름을 넣으면 된다.
class Person:
def greeting(self):
print("안녕하세요")
class Student(Person):
def study(self):
print("공부하기")
james = Student()
james.greeting()
james.study()
안녕하세요
공부하기
issubclass 함수를 사용하면 클래스가 특정 클래스의 파생 클래스인지 확인할 수 있다.
class Person:
def greeting(self):
print("안녕하세요")
class Student(Person):
def study(self):
print("공부하기")
print(issubclass(Student, Person))
True
위 예제에서 봤던 Person과 Student는 상속관계다.
class Person:
def greeting(self):
print("안녕하세요")
class PersonList:
def __init__(self):
self.person_list = []
# 리스트 속성에 Person 인스턴스를 넣어서 관리
def append_person(self, person):
self.person_list.append(person)
# 리스트 속성에 Person 인스턴스를 추가하는 함수
위 코드에서 PersonList의 속성에서 Person 인스턴스를 관리하고 있다. 이러한 관계를 포함관계라고 한다.
이 관계를 영어로 "has-a관계"라고 부른다. (Personalist has a Person)