728x90
반응형
추상 클래스 (abstract class)
- 추상 클래스이므로 인스턴스 생성 x → 생성 구문 사용시 에러
abstract class Bird {
abstract fly(): void;
}
class Sparrow extends Bird {
fly(): void {
console.log("짹짹~~~");
}
}
class Eagle extends Bird {
fly(): void {
console.log("독수리 날개짓~~~");
}
}
const bird1: Bird = new Sparrow();
const bird2: Bird = new Eagle();
bird1.fly(); // 짹짹~~~
bird2.fly(); // 독수리 날개짓~~~
Bird 추상 클래스를 상속받은 Sparrow와 Eagle 클래스이다.
Bird 클래스에는 fly() 추상 메소드가 정의되어 있다.
추상 클래스를 상속하는 클래스는 추상 클래스에 정의된 메서드를 반드시 구현해야 한다!
타입스크립트 constructor (생성자)
- 클래스가 인스턴스화 될 때 호출되는 메소드
- constructor() 안에서 클래스의 속성값을 초기화
- constructor() 안에서 매개변수를 받아와 클래스의 속성값을 초기화할 수 있음
- constructor() 안에서 public, private, protected 접근제어자를 사용하여 속성값을 선언할 수 있음
- 매개변수에 접근제어자를 붙이면 해당 변수가 클래스의 속성값으로 자동으로 초기화됨
class Animal {
name: string;
sound: string;
// constructor
constructor(name: string, sound: string) {
this.name = name;
this.sound = sound;
}
say() {
console.log(this.sound);
}
}
const dog = new Animal("개", "멍멍");
const cat = new Animal("고양이", "야옹");
console.log(dog.name); // "개"
console.log(cat.name); // "고양이"
dog.say(); // 멍멍
cat.say(); // 야옹
위 코드에서 Animal 클래스의 constructor 함수는 name과 sound 매개변수를 받아와 각각 클래스의 name과 sound 속성값으로 초기화한다.
클래스를 인스턴스화할 때, new 키워드 뒤에 Animal 클래스의 생성자의 인수로 값을 전달해준다.
이렇게 전달한 값들이 constructor 함수의 매개변수 name과 sound로 전달되며, this.name과 this.sound 속성값이 각각 전달받은 값으로 초기화된다.
728x90
반응형
'Language > TypeScript' 카테고리의 다른 글
[TypeScript] overriding 오버라이딩 (0) | 2023.03.13 |
---|---|
[TypeScript] async, await, promise 비동기 처리 (0) | 2023.03.11 |
[TypeScript] index.d ts 파일이란? (0) | 2023.03.06 |
[TypeScript] Map 객체, TypeScript , JavaScript Map (0) | 2023.03.06 |