주니어 개발자가 되기위해 자기자신에게 가스라이팅 하기

오버로딩(Overloading), 오버라이딩(Overriding) 본문

공부/Typescript

오버로딩(Overloading), 오버라이딩(Overriding)

소영e 2023. 12. 5. 16:38

사실이건 typescript뿐만 아니라 객체지향 언어들에서 다들 봤을만한 단어이다!

 

이름이 비슷해서(...) 인지 내가 항상 헷갈려해서... 정리해보려고한다.

 

1. 오버로딩(Overloading)

 

함수의 확장 ✅

 

같은 이름의 메서드 여러개를 가지면서 매개변수의 유형과 개수가 다르도록 하는 기술

 

꼭! 매개변수의 갯수나 타입이 달라야한다!!!!

 

//오버로딩을 가능하게 할 함수타입 정의
type Add = {
  (a: number, b: number): number;
  (a: number, b: number, c: number): number;
};

//함수의 정의
const add: Add = (a, b, c?: number) => {
  if (c) return a + b + c;
  return a + b;
};

 

2. 오버라이딩(Overriding)

 

메소드 재정의 ✅

 

상위 클래스가 가지고 있는 메서드를 하위 클래스가 재정의해서 사용

 

추상클래스, 인터페이스에서도 쓰이는 개념

 

class Animal {
  makeSound() {
    console.log("동물 울음소리");
  }
}

class Dog extends Animal {
  makeSound() {
    console.log("멍멍");
  }
}

const animal = new Animal();
const dog = new Dog();

animal.makeSound(); // "동물 울음소리"
dog.makeSound(); // "멍멍"

'공부 > Typescript' 카테고리의 다른 글

타입스크립트 환경설정  (2) 2023.11.21