본문 바로가기
프로그래밍/PYTHON

[16일차] python 클래스 상속(inherit)

by B T Y 2017. 3. 2.
반응형

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()를 통해서

정상적으로 값을 가져올수 있다 )

 

inherit.py
다운로드

 

반응형

댓글