상속 / 확장
기본 class가 확장이 되어서 파생 class가 되는 것
// 기본
class chicken {
result() {
return 'Fried';
}
}
// 파생 기본
class seasoned extends chicken {
result() {
return 'Seasoned';
}
}
// 파생
const kfc = new seasoned();
console.log(kfc.result());
class seasoned extends chicken
= class 파생 extends 기본
부모로 부터 자식이 상속 받아 사용이 가능하다.(상속)
또한 기본 클래스를 기준으로 자식 클래스가 확장 될 수 있다.
// 기본 클래스
class Actor {
name: string
constructor(name: string) {
this.name = name;
}
actorName() {
return `배우의 이름은 ${this.name}`;
}
}
// 파생 클래스
class Person extends Actor {
constructor(name: string) {
super(name);
}
personName() {
return `${super.actorName()} 사람의 이름은 ${this.name}`;
}
}
const person = new Person('Jongseok');
console.log(person.personName());
매개변수로 Jongseok을 넣는다.
const person = new Person('Jongseok');
파생 class의 생성자 함수로 Jongseok이 들어간다.
class Person extends Actor {
constructor(name: string) {
super(name);
}
생성자 함수에서 상위의 기본클래스인 name으로 들어간다.
super(name);
기본 클래스의 name으로 들어간다.
class Actor {
name: string
constructor(name: string) {
this.name = name;
}
기본 클래스의 멤버로 세팅된다.
this.name = name;
this는 person이라는 디스턴스를 가르키기 때문에 생성된 person이라는 인스턴스에서 재활용이 가능하다.
파생된 class에서 super로 접근을 할 경우에는 상위 class를 참조한다.
super => Actor 참조
사람의 이름은 ${this.name} => const person 참조