클래스에서 extends와 implements의 차이점

리충녕·2023년 11월 27일
0

Typescript

목록 보기
17/18

📋 extends와 implements의 차이점은 무엇일까?


extends

특정 클래스를 상속받고자 할 때 사용한다.

extends로 특정 클래스를 상속받게 되면 해당 클래스의 프로퍼티, 메서드를 별도로 구현하지 않아도 인스턴스에서 사용이 가능하다.

누군가에게 상속받은 재산을 마음대로 사용할 수 있는 개념이다.

  • extends 예시
class Parent {
    constructor(
        protected name : string,
        protected age : number
    ) {}
};

const Puser = new Parent("parent", 20);

class Child extends Parent {};

const Cuser = new Child("parent", 10);


implements

미리 추상화된 인터페이스를 채택하여 사용하는 것이다.

extends와 다르게 채택한 인터페이스에 명시된 프로퍼티나 메서드를 반드시 구현해주어야 한다.

interface Info {
    name : string,
    age : number
}

class User implements Info {
    constructor(
        public name : string,
        public age : number 
    ) {}
}

위 내용에 추가하여 implements는 컴파일 후에 자바스크립트 코드로 남지 않기 때문에 최적화 측면에서 extends보다 유리한 측면이 있다고 생각한다.


참고

extends와 implements

0개의 댓글