클래스와 인스턴스의 개념 이해
2024년 07월 04일 by이가은
프로토타입 기반 언어인 자바스크립트는 상속 개념이 존재하지 않습니다. 그러나 ES6에 추가된 클래스 문법은 프로토타입을 일정부분 활용하고 있으므로, 프로토타입을 활용하여 클래스를 직접 구현해보며 클래스를 이해하는 시간을 가져봅시다!
클래스와 인스턴스
계층, 집단, 집합의 의미를 가진 클래스(class)
는 어떤 실존하는 개체들의 공통 속성을 모아 정의한 추상적인 개념을 뜻합니다.
그리고 인스턴스(instance)
는 어떤 클래스의 속성을 지니는 실존하는 개체를 말합니다.
과일로 예를 들자면 음식, 과일, 귤류는 각각 공통 속성을 모아 정의한 클래스이고, 감귤, 자몽, 오렌지 등은 귤류의 속성을 지니는 인스턴스입니다.
여기서 상하관계를 엿볼 수 있는데, 상위 개념은 superclass
, 하위 개념은 subclass
라고 부릅니다.
과일은 귤류의 superclass이고, 귤류는 음식의 sub-subclass인 것이지요.
위 그림에 나타난 음식, 과일, 귤류의 속성을 보시면 하위로 갈수록 상위 클래스의 속성이 상속되며 더 구체적인 요건이 추가, 변경되는 클래스의 특징을 알 수 있습니다.
인스턴스는 다양한 클래스에 속할 수 있지만, 인스턴스를 생성할 때 호출 할 수 있는 클래스는 하나뿐이므로, 클래스는 인스턴스 입장에서 '직계존속'입니다.