사람 클래스로 학생 클래스 만들기

상속의 개념은 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)

기반 클래스의 속성 사용하기