👶 TypeScript

인터페이스 구현 VS 추상 클래스 상속

개발자 린다씨 2023. 1. 15. 18:00
반응형

인터페이스 구현 VS 추상 클래스 상속

인터페이스 구현은 추상 클래스 상속과 아주 비슷합니다. 

 

하지만 인터페이스가 더 범용으로 쓰이며 가벼운 반면, 추상 클래스는 특별한 목적과 풍부한 기능을 갖는다는 점이 다릅니다.

인터페이스

인터페이스는 형태를 정의하는 수단입니다.

 

값 수준에서 이는 객체, 배열, 함수, 클래스, 클래스 인스턴스를 정의할 수 있다는 뜻입니다.

 

인터페이스는 아무런 JavaScript 코드를 만들지 않으며 컴파일 타임에만 존재합니다.

추상 클래스

추상 클래스는 오직 클래스만 정의할 수 있습니다.

 

예상할 수 있겠지만 추상 클래스는 런타임의 JavaScript 클래스 코드를 만듭니다.

 

추상 클래스는 생성자와 기본 구현을 가질 수 있으며 프로퍼티와 메서드에 접근 한정자를 지정할 수 있습니다.

 

위의 기능은 모두 인터페이스에선 제공되지 않습니다.

무엇을 사용해야 할까

인터페이스와 추상 클래스 중 무엇을 사용할지는 상황에 따라 다릅니다. 

 

여러 클래스에서 공유하는 구현이라면 추상 클래스를 사용하고, 가볍게 "이 클래스는 T다"라고 말하는 것이 목적이라면 인터페이스를 사용하면 됩니다.

반응형