OOP

Overloading vs Overriding

pocket.quokka 2023. 11. 12. 10:52

Overloading/오버로딩

함수의 이름은 같지만 파라미터의 타입/수가 다른 함수를 중복으로 선언하는 것

함수의 로직은 같으나 파라미터만 달라질 때 사용할 수 있다.

파라미터의 수가 달라질 때는 순서대로 뒤에 차곡차곡 추가되어야한다.

interface Print {
    print(data: string): string;
    print(data: number): number;
    print(data: string, extraData: number): string; // 파라미터 차곡차곡
    print(extraData: string, data: number): string; // 차곡차곡이 아니라서 이건 안됨
}

 

Overriding/오버라이딩

부모 클래스의 함수 구현 내용을 재정의하여 사용하는 것  --> 부모 클래스에서 내려온 함수 대신 내가 정의한 함수를 사용하기 위해서 사용

함수 이름/파라미터 개수/파라미터 타입/리턴 타입 모두 같아야 함