자바스크립트 클래스의 상속과 static(정적) 메소드에 대해서 다시 배웠다
프로그래밍에서 상속이라는 개념은 부모와 자식간의 관계처럼 어떠한 속성이나 유산을 대물림 받는 것을 말한다.
여기서 속성이나 유산이라 하면 부모 클래스 안에 있는 기능들을 말한다.
부모 클래스 내에 여러가지 함수, 변수, 객체 등이 존재한다면
자식 클래스를 선언할 때 같은 기능들은 자식 클래스 내에서 선언하지 않아도 사용이 가능하다는 것이다.
이 상속이라는 것은 사실 외울 필요도 없이 이 용어를 만들어내고 기능을 만든 사람들에게 감탄할 수 밖에 없는 놀라운 기능이다...
자바스크립트에서는 extends라는 단어를 사용해서 자식클래스를 지정하고 상속해줄 수 있다.
class Parents {
constructor(name){
this.name = name;
}
speak(){
console.log(`I'm your ${this.name}`);
}
}
class Daughter extends Parents{
speak(){
console.log(`${this.name} is your daughter`);
}
}
class Son extends Parents{
speak(){
console.log(`${this.name} is your son`);
}
}
const bob = new Son('bob'); // 부모의 생성자 속성을 물려받아 name의 value를 bob으로 설정한다.
const anna = new Daughter('anna'); // 위와 같이 name의 value를 anna로 설정한다.
bob.speak(); // bob is your son
anna.speak(); // anna is your daughter
상속이라는 개념을 몰랐을 때와 알았을 때의 차이는 점점 커질 것이다.
이제 여러 기능들을 구현하고 인스턴스들을 생성할 때 여러 다양한 객체들의 속성을 효율적으로 관리하도록 노력해봐야겠다.