자바스크립트의 Inheritance
- Inheritance 란 상속을 의미한다.
- 현실 세계의 예를 들어보자면, Paul 이라는 성인남성을 하나의 객체로 표현한다고 생각해보자. Paul 이란 사람은 생물학적으로 남자 라는 범주에 속할 것이며, 남자는 다시 인간이라는 큰 대분류 안에 들어간다. 모든 인간은 갖지 않지만, 공통적으로 갖게 되는 특성이 존재하고, 모든 남자는 인간이지만, 남성성인 인간만 갖을 수 있는 특성이 있다. 같은 개념으로 Paul 역시 인간과 남자의 속성을 상속 받지만, Paul 이란 인간이 갖고 있는 다른점들이 있을 것이다.
- 위의 개념을 클래스로 표현하자면 아래와 같다
class human {
constructor() {
this.arms = 2;
this.legs = 2;
}
walk() {
return '두 다리를 사용해서 걷는다'
}
}
class Paul extends human {
constructor() {
super();
this.age = 29;
this.weight = 113;
}
code() {
return '000001'
}
}
- 위의 코드처럼 모든 인간은 2개의 팔과 2개의 다리를 갖고 있으며, walk(), 즉 두 다리로 걸을 수 있다.
- Paul 은 이러한 인간의 특성을 그대로 상속받으면서, Paul 이라는 인간 고유의 정보나 할수 이는 일 (메소드) 가 존재한다.
- 이러한 클래스는 무한히 subClass (하위 클래스) 를 갖을 수 있다.