super().__init__(cpu, ram) 문장을 보면 Computer 클래스의 생성자를 호출하면서 두 개의 인자를 전달하는데 super라는 키워드가 눈에 띕니다(#2). super는 현재 클래스의 슈퍼 클래스 즉, 기본 클래스를 의미합니다. CPU와 RAM은 기본 클래스의 생성자를 이용해 초기화했으므로 나머지 한 멤버인 battery만 할당해 주면 됩니다(#3).
그런 다음 Laptop 클래스만 가지는 move() 메서드를 추가합니다(#4). 이렇게 기본 클래스의 모든 멤버와 메서드를 가지면서 자신만의 멤버 혹은 메서드를 가지는 클래스가 있다면 상속을 합니다.
컴퓨터와 노트북의 상속 관계를 그림으로 표현하면 그림 7-1과 같습니다.
그림 7-1 컴퓨터와 노트북은 상속 관계
이제 테스트 코드를 작성해 보죠.
코드 7-3 oop2/oop2_1/is_a.py ③
if __name__ = = "__main__": lap = Laptop('intel', 16, 'powerful') lap.browse() #5 lap.work() lap.move('office') #6
실행결과 browse
work
move to office
Laptop 객체를 만든 다음 상속받은 browse() 메서드를 호출합니다(#5). 그리고 Laptop 클래스에서 추가한 move() 메서드를 호출합니다(#6).