20-09-09 OOP: Inheritance

paulkim·2020년 9월 8일
0

TIL

목록 보기
11/11

자바스크립트의 Inheritance

  • Inheritance 란 상속을 의미한다.
  • 현실 세계의 예를 들어보자면, Paul 이라는 성인남성을 하나의 객체로 표현한다고 생각해보자. Paul 이란 사람은 생물학적으로 남자 라는 범주에 속할 것이며, 남자는 다시 인간이라는 큰 대분류 안에 들어간다. 모든 인간은 갖지 않지만, 공통적으로 갖게 되는 특성이 존재하고, 모든 남자는 인간이지만, 남성성인 인간만 갖을 수 있는 특성이 있다. 같은 개념으로 Paul 역시 인간과 남자의 속성을 상속 받지만, Paul 이란 인간이 갖고 있는 다른점들이 있을 것이다.
  • 위의 개념을 클래스로 표현하자면 아래와 같다
class human {
	constructor() {
		this.arms = 2; 
		this.legs = 2; 
	}

	walk() {
		return '두 다리를 사용해서 걷는다' 
	}
}
	
class Paul extends human {
	constructor() {
		super(); // super 생성자를 통해서 Mankind 들이 갖고 있는 trait 을 물려받을 수 있다. 
		this.age = 29; 
		this.weight = 113; 
	}
	
	code() {
		return '000001' 
	}
} 
  • 위의 코드처럼 모든 인간은 2개의 팔과 2개의 다리를 갖고 있으며, walk(), 즉 두 다리로 걸을 수 있다.
  • Paul 은 이러한 인간의 특성을 그대로 상속받으면서, Paul 이라는 인간 고유의 정보나 할수 이는 일 (메소드) 가 존재한다.
  • 이러한 클래스는 무한히 subClass (하위 클래스) 를 갖을 수 있다.

0개의 댓글