기존 타입의 계약을 확장하고 재사용합니다.
상속은 하위 클래스가 상위 클래스의 메서드를 이어받고 일부 동작을 바꾸게 합니다. super는 현재 클래스 다음의 메서드 구현을 호출해 초기화와 협력 동작을 보존합니다.
예제에서 class Child(Parent): def __init__(...): super().__init__(...) 부분부터 찾으세요. 값을 만드는 표현식과 그 값을 다음 문장으로 넘기는 흐름을 한 줄씩 따라가면 실행 결과를 스스로 설명할 수 있습니다.
하위 클래스는 상위 클래스 대신 사용해도 기대한 계약을 지켜야 합니다. 단지 코드 몇 줄을 재사용하려고 의미 없는 is-a 관계를 만들지 않습니다.
상속 계층은 얕게 유지하고 변경 가능한 기능 조합에는 구성이나 전략 객체를 우선 검토합니다.
이 코드는 브라우저의 실제 Python에서 실행됩니다. 먼저 현재 결과를 확인한 뒤 VideoCourse에 duration_minutes를 추가하고 summary를 확장하세요.
부모 __init__ 호출을 빼면 부모가 보장하던 속성이 없어 나중 메서드에서 오류가 납니다.
직접 바꿔보세요VideoCourse에 duration_minutes를 추가하고 summary를 확장하세요.
실행 버튼을 누르면 결과가 여기에 표시됩니다.