더북(TheBook)


1.1IS-A: 상속


IS-A는 ‘~은 ~의 한 종류다’를 의미합니다. 예를 들어 ‘노트북은 컴퓨터의 한 종류다’라는 문장은 관계가 성립하므로 Computer 클래스와 Laptop 클래스는 IS-A 관계입니다. 영어로 바꿔 말하면 ‘A laptop IS-A computer’인데 문장 중간에 ‘한 종류다’라는 의미가 IS–A이므로 IS-A 관계라고 부릅니다.

IS-A 관계를 프로그램에서 표현할 때는 상속(inheritance)을 사용합니다. 상속은 객체 지향의 근간이라고 불릴 만큼 중요하며 유용합니다. 하지만 IS-A 관계가 아닐 때 상속을 하면 클래스를 설계하는 데 어려움이 따릅니다.

상속 관계에서 상속을 하는 클래스를 기본(base) 클래스, 부모(parent) 클래스, 슈퍼(super) 클래스라고 하며, 상속을 받는 클래스를 파생(derived) 클래스, 자식(child) 클래스, 서브(sub) 클래스라고 합니다.

이제 노트북(Laptop 클래스)과 컴퓨터(Computer 클래스)를 상속을 이용해 설계해 보겠습니다.

코드 7-1 oop2/oop2_1/is_a.py ①

class Computer:
    def _ _init__(self, cpu, ram):
        self.CPU = cpu
        self.RAM = ram

    def browse(self):
        print('browse')

    def work(self):
        print('work')
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.