오버라이딩(Overriding) & 오버로딩(Overloading)
오버라이딩(Overriding)과 오버로딩(Overloading)은 객체지향 프로그래밍에서 다형성을 구현하기 위한 개념
오버라이딩(Overriding)
- 상위 클래스에서 이미 정의된 메서드를 하위 클래스에서 동일한 이름과 시그니처(매개변수 타입, 개수, 순서)를 가지는 새로운 구현으로 대체하는 것
- 상속 관계에서 하위 클래스는 상위 클래스의 메서드를 재정의하여 동작을 변경할 수 있다.
오버라이딩을 사용하기 위해서..
- 상위 클래스와 하위 클래스 사이에 상속 관계가 있어야 한다.
- 오버라이딩할 메서드의 이름, 매개변수 타입, 개수, 순서가 동일해야 한다.
- 접근 제어자(private 메서드를 제외한)와 예외 타입은 상위 클래스의 메서드와 동일하거나 더 넓은 범위로 설정되어야 한다.
오버로딩(Overloading)
- 오버로딩은 같은 이름의 메서드를 여러 개 정의하는 것을 의미
- 매개변수의 타입, 개수, 순서를 다르게하여 같은 이름의 메서드가 다양한 상황에서 다른 동작을 수행할 수 있도록 한다.
오버로딩을 사용하기 위해서..
- 메서드의 이름이 동일해야 한다.
- 매개변수의 개수, 타입, 순서가 서로 달라야 한다.
정리
- 오버라이딩 은 상속 관계에서 상위 클래스의 메서드를 하위 클래스에서 재정의하는 것이고,
오버로딩 은 같은 이름의 메서드를 매개변수의 타입, 개수, 순서를 다르게 정의하는 것.
- 둘 다 다형성을 구현하는 중요한 개념이며, 객체지향 프로그래밍에서 유용하게 사용된다.