개발자 블로그

[윤성우의 열혈 파이썬 중급편] - 12. 상속 본문

파이썬/윤성우의 열혈 파이썬 중급편

[윤성우의 열혈 파이썬 중급편] - 12. 상속

hayongwoon 2022. 5. 3. 18:29

부모 클래스와 자식 클래스

부모 클래스, 상위 클래스, 슈퍼 클래스라고도 읽으며, 베이스가 되는 클래스이다.

자식 클래슥, 하위 클래스, 서브 클래스라고도 읽으며, 베이스가 되는 클래스를 상속받아 추가할 메소드를 업데이트한 클래스이다.

 

따라서, 자식 클래스는 부모클래스의 모든 메소드를 갖고온다. 또한 새로운 별도의 메소드를 추가할 수도 있다.

 

*새로운 메소드를 추가하는 과정에서 같은 메소드(이름이 같은 메소드)가 중첩이 될 때, 오버라이딩(부모로 부터 가져온 메소드가 가려지는)이 일어날 수 있다. 이를 메소드 오버라이딩이라고 한다.

 이러한 경우 말그대로 덮어씌어진것이기 때문에 해당하는 부모 메소드가 사라진 것은 아니다. 가려진 것 뿐! 이것은 super()라는 상속 클래스를 호출할 때 쓰는 메소드를 활용하여 새롭게 정의를 해주면 된다!

 

__inint__ 메소드의 경우, 자식 클래스에서 __init__메소드 내에서 부모 __init__ 메소드를 호출해야한다. 그래야 적절하게 값을 초기화하여 사용할 수 있다.

** 자식 클래스의 __init__ 은 부모의 변수를 초기화할 값도 함께 전달받아야 한다. 결론적으로 객체 생성 시 자동으로 호출되는 __init__은 오버라이딩 해야하는 메소드이면서 동시에 가려진 부모의 __init을 반드시 호출해야하는 메소드!!