👶 TypeScript
인터페이스 구현 VS 추상 클래스 상속
개발자 린다씨
2023. 1. 15. 18:00
반응형
인터페이스 구현 VS 추상 클래스 상속
인터페이스 구현은 추상 클래스 상속과 아주 비슷합니다.
하지만 인터페이스가 더 범용으로 쓰이며 가벼운 반면, 추상 클래스는 특별한 목적과 풍부한 기능을 갖는다는 점이 다릅니다.
인터페이스
인터페이스는 형태를 정의하는 수단입니다.
값 수준에서 이는 객체, 배열, 함수, 클래스, 클래스 인스턴스를 정의할 수 있다는 뜻입니다.
인터페이스는 아무런 JavaScript 코드를 만들지 않으며 컴파일 타임에만 존재합니다.
추상 클래스
추상 클래스는 오직 클래스만 정의할 수 있습니다.
예상할 수 있겠지만 추상 클래스는 런타임의 JavaScript 클래스 코드를 만듭니다.
추상 클래스는 생성자와 기본 구현을 가질 수 있으며 프로퍼티와 메서드에 접근 한정자를 지정할 수 있습니다.
위의 기능은 모두 인터페이스에선 제공되지 않습니다.
무엇을 사용해야 할까
인터페이스와 추상 클래스 중 무엇을 사용할지는 상황에 따라 다릅니다.
여러 클래스에서 공유하는 구현이라면 추상 클래스를 사용하고, 가볍게 "이 클래스는 T다"라고 말하는 것이 목적이라면 인터페이스를 사용하면 됩니다.
반응형