오버로딩 (Overloading)
같은 이름의 메서드가 다른 매개변수를 가질 수 있음을 의미한다.
특징:
- 매개변수의 수, 타입, 혹은 둘 다가 달라야 한다.
- 반환 타입은 오버로딩을 구별하는 기준이 아니다.
사용 이유:
- 코드의 중복을 줄이고, 프로그래머가 메서드 이름을 일일이 다르게 지정하지 않도록 하여 가독성을 높인다.
- 다형성을 구현하며 코드의 유연성을 높인다.
오버라이딩 (Overriding)
부모 클래스에서 상속받은 메서드를 자식 클래스에서 재정의하는 것을 의미한다.
특징:
- 메서드 시그니처 (이름, 매개변수 타입 및 개수)가 반드시 같아야 한다.
- 반환 타입은 같거나 하위 타입이어야 한다.
- 접근 제어자는 부모 클래스의 것과 같거나 더 넓은 범위로 설정해야 한다.
사용 이유:
- 부모 클래스의 기능을 확장하거나 수정할 필요가 있을 때 사용한다.
- 런타임에 다형성을 구현하는 한 가지 방법이다.
- 코드의 재사용성을 높이고 유지 보수를 쉽게 한다.
내가 배우는 JS에서는 오버 로딩은 공식적으로는 없고, 오버 라이딩도 일반적인 방식과 조금 다르다. 그래서 지금 당장 이해하기도 힘들고 이것을 몰라도 크게 문제는 없을 것 같다. 하지만 필요한 자료들을 찾아보면서 중간에 한 번씩 나오는 키워드라서 찾아봤다.
'오늘 뭐했냐 > 개발에 대한 주저리' 카테고리의 다른 글
23.09.14 인덱스(index) (0) | 2023.09.17 |
---|---|
23.09.13 시간 복잡도와 공간 복잡도 (0) | 2023.09.16 |
23.09.11 정렬 알고리즘 (0) | 2023.09.14 |
23.09.10 엘라스틱서치(Elasticsearch) (0) | 2023.09.14 |
23.09.09 도커(Docker) (0) | 2023.09.13 |