상속 예제를 살펴보겠습니다.
class Animal {
name: string;
constructor(theName: string) { this.name = theName; }
move(distanceInMeters: number = 0) {
console.log(`${this.name} moved ${distanceInMeters}m.`);
}
}
class Snake extends Animal {
constructor(name: string) { super(name); }
move(distanceInMeters = 5) {
console.log("Slithering...");
super.move(distanceInMeters);
}
}
class Horse extends Animal {
constructor(name: string) { super(name); }
move(distanceInMeters = 45) {
console.log("Galloping...");
super.move(distanceInMeters);
}
}
let sam = new Snake("Sammy the Python");
let tom: Animal = new Horse("Tommy the Palomino");
sam.move();
tom.move(34);
생성자 함수를 기초 클래스의 생성자를 실행할 super()
를 호출해야 합니다. 더욱이 생성자 내에서 this
에 접근하기 전에 먼저 호출해야 합니다. 이 부분은 Typescript에서 중요한 규칙입니다.