본문 바로가기
JavaScript

05. 상속

by 쬑께께 2022. 2. 17.

상속이란,

부모 생성자의 기능을 물려받으면서 새로운 기능도 추가하는 것을 말한다.

1) 상속 선언

상속선언은 다음과 같다.

우선 부모클래스를 만들고,

하위 클래스를 만들어준다.

하위 클래스 명 뒤에 extends가 붙어있는 모습을 볼 수 있는데

이 extends가 바로 부모를 상속하게끔 만들어 주는거다.

순서를 헷갈리면 안된다.

순서는

class 자식 클래스 extends 부모 클래스{ }

이다.

 

변수를 선언하고 잘 상속되었는지 확인해보면

부모 클래스 안에 있던 변수와 함수가 나타나는 모습을 볼 수 있다. 

2) 오버라이딩

오버라이딩은 부모가 가진 함수를 자식이 재선언 하는 것이다. 

 

super는 부모생성자를 호출한다.

이 코드를 보면 Animal 클래스를 상속받는 Dog 클래스에서 

단순히 부모생성자를 호출하는 기능을 가진 sound함수만을 가지고 있다.

출려해보면

  라는 부모 클래스의 결과만이 나오는 모습을 확인할 수 있다. 

 

만일 내가 Dog클래스에선 'Mung'이라는 글자가 나오게끔 만들고 싶다!

그럴 때 사용하는 것이 오버 라이딩이다. 

sound함수 안에 'Mung'이라는 글자가 나오게끔

소스 코드를 변경시켰다.

원래라면 상식적으로 이 코드는 오류가 나야한다.

하지만, 실행시켜보면

이렇게 오류가 나지 않고, 

잘 동작하는 모습을 볼 수 있다.

 

이렇게, 부모클래스에서 선언해둔 함수를

자식 클래스에서 재선언 하는 것을 

오버 라이딩이라고 한다. 

 

+++++

클래스를 너무 많이 상속한 경우 

이 특정 자식 클래스에서 만든 객체가

특정 부모클래스를 상속받고 있는 것인지 헷갈릴 떄가 있다.

 

그 때는 

instanceof를 사용해보자.

다음과 같이 사용된다.

자식 클래스 객체 instanceof 부모 클래스

그러면 이렇게 

참/거짓으로 값을 알려준다.

'JavaScript' 카테고리의 다른 글

TypeScript 사용해보기  (0) 2022.04.20
06. 내장 객체  (0) 2022.02.18
04. 객체(오브젝트)와 클래스  (0) 2022.02.16
로또 만들기  (0) 2022.02.15
03. 함수와 배열  (0) 2022.02.11