요약
오버로딩(overloading)
오버로딩은 같은 이름의 메서드를 매개변수의 개수나 타입이 다른 여러 함수로 정의하는 것을 의미합니다. 하나의 클래스나 함수 안에서 같은 이름의 메서드가 다양한 매개변수로 다르게 작동하도록 구현하는 것이 가능합니다.
오버라이딩(overriding)
오버라이딩은 상위 클래스에서 상속받은 메서드를 하위 클래스에서 재정의하여 사용하는 것을 의미합니다. 자식 클래스에서 부모 클래스의 메서드를 내용을 변경하거나 확장하여 사용하는 것입니다.
오버로딩(overloading)
확장, 오버로딩(overloading)은 메서드의 이름은 같고, 매개변수의 갯수나 타입이 다른 함수를 정의하는 것을 의미합니다.
하나의 클래스 안에서 같은 이름의 메서드를 사용하지만 각 메서드마다 다른 용도로 사용되며 그 결과물도 다르게 구현할 수 있게 만드는 개념인데 오버로딩이 가능하려면 메서드끼리 이름은 같지만 매개변수의 갯수나 데이터타입이 다르면 오버로딩이 적용되어 메서드 이름이 같아도 문법 에러가 나지 않습니다.
function add(a, b) { return a + b; } function add(a, b, c) { return a + b + c; }
오버로딩 시 조건
- 메소드의 이름이 일치해야 함
- 메소드 매개변수의 개수 또는 타입이 달라야함(개수, 타입 둘 중 하나는 달라야 함)
- 메소드의 return 타입이 달라야 함
오버로딩의 장점
- 같은 기능을 하는 메소드를 하나의 이름으로 사용할 수 있다
- 메소드의 이름을 절약할 수 있다.
오버라이딩(overriding)
재정의, 오버라이딩(overriding)은 상위 클래스의 메서드를 하위 클래스가 재정의 하는 것입니다.
부모클래스에서 상속받은 서브클래스 즉 자식클래스에서 부모클래스, 즉 상위클래스에서 만들어진 메서드를 자신의 입맛대로 다시 재창조해서 사용하는 것을 말합니다
class Animal { makeSound() { console.log("Some generic animal sound"); } } class Cat extends Animal { makeSound() { console.log("Meow"); } }
오버라이딩 시 조건
- 메소드의 이름이 일치해야 함
- 메소드 매개변수의 개수, 순서, 그리고 데이터 타입이 일치해야 함
- 메소드의 return 타입이 일치해야함
오버라이딩 장점
- 상속을 통해 코드의 재사용성을 높일 수 있습니다.
- 자식 클래스에서 부모 클래스의 기능을 수정하거나 확장할 수 있습니다.
오버로딩 vs 오버라이딩
오버로딩은 같은 이름의 메소드를 생성하여 사용하는 것이고, 오버라이딩은 부모로부터 상속받은 메소드를 재정의하여 사용하는 것이다.
ㅤ | 오버로딩 | 오버라이딩 |
메소드 이름 | 동일 | 동일 |
매개변수, 타입 | 다름 | 동일 |
리턴 타입 | 상관 없음 | 동일 |