오늘 뭐했냐/개발에 대한 주저리

23.09.12 오버로딩 오버라이딩

스스로에게 2023. 9. 15. 13:06

오버로딩 (Overloading)

 같은 이름의 메서드가 다른 매개변수를 가질 수 있음을 의미한다.

 

특징:

  • 매개변수의 수, 타입, 혹은 둘 다가 달라야 한다.
  • 반환 타입은 오버로딩을 구별하는 기준이 아니다.

 

사용 이유:

  • 코드의 중복을 줄이고, 프로그래머가 메서드 이름을 일일이 다르게 지정하지 않도록 하여 가독성을 높인다.
  • 다형성을 구현하며 코드의 유연성을 높인다.

 

오버라이딩 (Overriding)

 부모 클래스에서 상속받은 메서드를 자식 클래스에서 재정의하는 것을 의미한다.

 

특징:

  • 메서드 시그니처 (이름, 매개변수 타입 및 개수)가 반드시 같아야 한다.
  • 반환 타입은 같거나 하위 타입이어야 한다.
  • 접근 제어자는 부모 클래스의 것과 같거나 더 넓은 범위로 설정해야 한다.

 

사용 이유:

  • 부모 클래스의 기능을 확장하거나 수정할 필요가 있을 때 사용한다.
  • 런타임에 다형성을 구현하는 한 가지 방법이다.
  • 코드의 재사용성을 높이고 유지 보수를 쉽게 한다.

 

내가 배우는 JS에서는 오버 로딩은 공식적으로는 없고, 오버 라이딩도 일반적인 방식과 조금 다르다. 그래서 지금 당장 이해하기도 힘들고 이것을 몰라도 크게 문제는 없을 것 같다. 하지만 필요한 자료들을 찾아보면서 중간에 한 번씩 나오는 키워드라서 찾아봤다.