- 오버로딩이라는 뜻은 사전적인 의미로는 과적하다라는 뜻이다.
- JAVA에서 오버로딩은 한 클래스 내의 이미 사용하려는 이름과 같은 이름을 가진 메소드가 있더라도 매개변수의 개수 또는 타입이 다르면, 같은 이름을 사용해서 메소드를 정의할수 있다.
- 메소드의 이름이 같고, 매개변수의 개수나 타입이 달라야한다.
- 다만 리턴 값만 다른것은 오버로딩을 할 수 없다.
- 부모 클래스로부터 상속받은 메소드를 자식 클래스에서 재정의하는 것을 오버라이딩이라고 한다.
- 오버라이딩하고자 하는 메소드의 이름, 매개변수, 리턴 값이 모두 같아야한다.
구분 | 오버라이딩(Overriding) | 오버로딩(Overloading) |
---|---|---|
정의 | 상속받은 메소드를 재정의 하는 것 | 기존에 없는 새로운 메소드를 추가하는 것 |
접근 제어자 | 부모 클래스의 메소드의 접근 제어자보다 더 넓은 범위의 접근 제어자를 자식 클래스의 메소드에서 설정할수 있다. | 모든 접근 제어자를 사용할 수 있다. |
리턴형 | 동일해야 한다. | 달라도 된다. |
메소드명 | 동일해야 한다. | 동일해야 한다. |
매개변수 | 동일해야 한다. | 달아야만 한다. |
적용 범위 | 상속관계에서 적용된다. | 같은 클래스 내에서 적용된다. |