extends와 implements의 차이
extends
부모의 메서드를 그대로 사용할 수 있으며 오버라이딩(재정의)를 하지 않아도 됨.
변수까지 모조리 사용이 가능하나 다중상속은 안된다.
일반 클래스와 abstract을 상속할때 사용한다.
class가 class를 상속받을때는 extends, class가 interface를 상속받을때는 implements
interface가 interface를 상속받을때는 extends, interface는 class를 상속받을 수 없다.
class extends classA (O)
class implements interfaceA (O)
interfaceE extends interfaceP (O)
interfaceR extends classA (X)
interfaceR implements classA (X)
implements
부모의 메서드를 그대로 사용할 수 있으며 오버라이딩(재정의)를 반드시 해줘야한다.
설계/분류의 목적이 더 강한거라서 재정의를 해줘야한단다.. 잘 모르겠지만 그렇댄다.
대신 다중상속이 가능하다.
interface를 상속할때 사용한다.
super()
상위(부모)객체의 함수를 호출할때 사용된다.
constructor(생성자)에서 super()하나만 사용되어야한다.
-> 생성자 바깥이나 생성자 내부에 있는 함수에서는 사용할 수 없다.
this 키워드 이전에 호출되어야 한다.
-> 참조할 데이터를 가져오는게 super인데 호출되지 않으면 참조할 데이터가 없으니까 this를 사용할 수가 없다.
'프로그래밍 > javacscript' 카테고리의 다른 글
Promise.all과 Promise.allSettled의 차이점 (0) | 2022.12.06 |
---|---|
[220403] 클래스 정리 (0) | 2022.04.22 |
[220331] Status Code : 500, MulterError : Unexpected field (0) | 2022.03.31 |
[220322] 자바스크립트로 달력만들기 (0) | 2022.03.23 |
[220129] promise를 활용한 자동차 레이싱 게임 (0) | 2022.02.27 |
댓글