더북(TheBook)

super().__init__(cpu, ram) 문장을 보면 Computer 클래스의 생성자를 호출하면서 두 개의 인자를 전달하는데 super라는 키워드가 눈에 띕니다(#2). super는 현재 클래스의 슈퍼 클래스 즉, 기본 클래스를 의미합니다. CPURAM은 기본 클래스의 생성자를 이용해 초기화했으므로 나머지 한 멤버인 battery만 할당해 주면 됩니다(#3).

그런 다음 Laptop 클래스만 가지는 move() 메서드를 추가합니다(#4). 이렇게 기본 클래스의 모든 멤버와 메서드를 가지면서 자신만의 멤버 혹은 메서드를 가지는 클래스가 있다면 상속을 합니다.

컴퓨터와 노트북의 상속 관계를 그림으로 표현하면 그림 7-1과 같습니다.

130

그림 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).

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.