상속, Inheritance
- 상속은 객체들 간의 관계를 구축하는 방법이다.
- 수퍼 클래스(또는 부모 클래스)등의 기존의 클래스로부터 속성과 동작을 상속받을 수 있다.
- 공통되는 데이터를 정리할 수 있는 방법이다.
class Person {
name;
year;
constructor(name, year) {
this.name = name;
this.year = year;
}
}
class Singer extends Person {
sing() {
return `노래합니다.`;
}
}
class Actor extends Person {
acting() {
return `연기합니다.`;
}
}
const zico = new Singer("zico", 1993);
console.log(zico); // Singer { name: 'zico', year: 1993 }
const chungAh = new Actor("chungAhLee", 1984);
console.log(chungAh); // Actor { name: 'chungAhLee', year: 1984 }
console.log(zico.sing()); // 노래합니다.
console.log(chungAh.acting()); // 연기합니다.
// 얘는 서로 관계가 없으니 사용할 수 없다.
// console.log(chungAh.sing())
const soo = new Person("soo", 1997);
// 부모가 자식에게 상속은 가능하나
console.log(soo.name); // soo
console.log(soo.year); // 1997
// 자식은 부모에게 상속해주는건 안된다.
// console.log(soo.sing())
// 같은 맥락
console.log(chungAh instanceof Person); // true
console.log(chungAh instanceof Actor); // true
console.log(chungAh instanceof Singer); // false