저장을 습관화

객체 지향 프로그래밍 - 인터페이스 본문

공부/TypeScript

객체 지향 프로그래밍 - 인터페이스

ctrs 2023. 8. 1. 22:34

1. 인터페이스란

타입스크립트에서의 인터페이스는 객체의 타입, 객체가 가져야 하는 속성과 메서드를 정의한다.

인터페이스를 구현한 객체는 인터페이스를 반드시 준수하여야 한다는 규약이 있어 어길 수 없다.

 

C나 자바같은 정적언어에서는 어떠한 메소드로 구현되어야 하는지만 정의하지만

타입스크립트의 인터페이스는 규약과 타입까지도 정의하기에 코드의 안정성과 유지 보수성을 향상시킬 수 있다.

 

 

2. 추상 클래스와 인터페이스의 차이

1) 구현부 제공 여부

- 추상 클래스

클래스의 기본 구현을 제공

 

- 인터페이스

객체의 구조만을 정의하고 기본 구현은 제공하지 않음

 

 

2) 상속 메커니즘

- 추상 클래스

단일 상속만 지원한다.

 

- 인터페이스

다중 상속을 지원한다.

즉, 하나의 클래스는 여러 인터페이스를 구현할 수 있다.

 

 

3) 구현 메커니즘

- 추상 클래스

추상 클래스를 상속박은 자식 클래스는 '반드시' 추상 함수를 구현해야 한다.

 

- 인터페이스

인터페이스를 구현하는 클래스는 인터페이스에 정의된 모든 메서드를 전부 구현하여야 한다.

 

 

3. 그렇다면 인터페이스는 언제 쓰면 좋은가?

기본 구현을 제공하고 상속을 통해 확장하는데 초점을 맞추고 싶다. -> 추상 클래스

객체가 완벽하게 특정 구조를 준수하도록 강제하고 싶다. -> 인터페이스