[TypeScript] abstract(추상 클래스)에 대해 이해하기

BE/TypeScript 2023. 6. 11.

 

 

추상클래스: 자체적으로 인스턴스를 생성할 수 없는 클래스를 말한다.

 

추상클래스는 일반적으로 하나 이상의 추상 메소드(abstract method)를 포함하고, 이 메소드들은 선언만 있고 구현 내용은 없다.

 

 

  추상클래스를 사용하는 이유는?

 

  추상클래스를 사용하는 이유는 기본적인 구조나 기능을 정의하고, 그 것을 확장하는 자식 클래스들에 특정 메소드 구현을 강제하기 위함이다. 이렇게 함으로 자식 클래스들이 일관된 방식으로 동작하도록 보장할 수 있다.

 

// 추상 클래스, Animal 클래스는 인스턴스를 생성할 수 없음
abstract class Animal {
  // abstract 사용으로 추상 메소드 추가함
    abstract makeSound(): void;

    move(): void {
        console.log('Moving along!');
    }
}

class Dog extends Animal {
    makeSound() {
        console.log('Woof! Woof!');
    }
}

const myDog = new Dog();
myDog.makeSound(); // 'Woof! Woof!'
myDog.move(); // 'Moving along!'

 

 

⭐️ 추상메서드의 타입은 자식 클래스에서도 그대로 따라가야 한다.