python 클래스 상속(inherit)에 대해서 정리한다.
※ 상속(inherit)
- 물려주고, 물려받는 내용
즉, 클래스에 있는 내용을 물려줘서(물려 받아서) 쓸수 있다.
- 상속 되는 클래스를 부모(Parent), 베이스(Base) 클래스라고 하고
상속 받는 클래스를 자식(Child), 파생(derive) 클래스라고 한다.
- 한번에 다중 상속도 가능하지만 파이썬과 같은 경우에는 2개까지만 지원한다.
- 클래스는 상속을 따로 받지 않아도 모든 클래스에는 최상위 클래스인 Object 클래스를
상속 받아서 객체가 생성된다.
- 부모 클래스에 접근할때 클래스 이름 대신 super()를 이용하면 자신의 부모 클래스를
명시적으로 나타낼수 있다.
- 부모 클래스에 메서드 변수를 '__'(프라이빗)으로 캡슐화 해주면 자식 클래스조차도
접근할수 없다.
- 사람(Person)이라는 부모 클래스에 교수(Professor)와 학생(Student) 자식 클래스의
공통 속성인 이름과 나이 변수를 만들어 두 클래스에 상속 해주었다.
( 위에 설명한것처럼 부모 클래스명을 사용해도 되고 super()를 이용해서 접근해도 동작 방식은 똑같다 )
( Professor 클래스를 인자를 주어 객체화 시켰지만 Person을 상속 받았기 때문에
per1.name과 per1.age이 사용 가능한걸 볼수 있다 )
( 메서드 변수 앞에 '__'(프라이빗)를 붙여 캡슐화를 했기 때문에 값을 입력할때는 관련된 set 함수를 이용하고
값을 가져올때는 관련된 get 함수를 이용해서 가져온다 )
( Professor() 클래스를 객체화 시킨다음 getdata()를 통해 값을 입력하고 putdata()를 통해서
정상적으로 값을 가져올수 있다 )
'프로그래밍 > PYTHON' 카테고리의 다른 글
[18일차] python 그래픽 라이브러리를 이용한 단위 변환 프로그램 (1) | 2017.03.06 |
---|---|
[17일차] python 클래스 / 그래픽 라이브러리 (0) | 2017.03.03 |
[15일차] python 클래스(Class)의 구성요소 / 캡슐화 / @property / @staticmethod (0) | 2017.02.28 |
[14일차] 합병정렬(Merge sort) / 클래스와 객체(Class and Object) (0) | 2017.02.27 |
[13일차] python 제자리 정렬 기법 (선택정렬, 거품정렬) / EOF(End Of File) (0) | 2017.02.24 |
댓글