1. Overloading(오버로딩)
오버로딩 : 하나의 클래스에 같은 이름의 메소드를 여러 개 정의 하는 것
조건
- 메소드 이름이 같아야한다.
- 매개변수의 개수, 타입, 순서 중 한가지라도 달라야 한다.
- 매개변수는 같은데 리턴타입만 다를 경우 오버로딩이 성립하지 않는다.
1.2 오버로딩 예제
이처럼 메소드 이름은 같지만 매개변수의 순서 타입 개수 한가지만 달라도
오버로딩 가능하다.
2. Overriding(오버라이딩)
오버라이딩 : 부모 클래스가 갖고 있던 메소드를 자식 클래스에서 재정의하여 사용하는 것
조건
- 부모 메소드의 선언부와 자식 메소드의 선언부가 같아야한다
- static 메소드는 클래스에 속하는 메소드이기 때문에 상속되지 않고 오버라이드 되지 않는다.
- static 객체는 부모 메소드에서 메모리에 이미 할당 되어있기 때문에
- 오버로드와 달리 리턴 타입 메소드 이름, 매개변수 순서 모두 같아야 한다.
- 접근 제어자가 확대되는 것은 문제가 안되지만 범위가 축소는 불가능 하다.
2.2 오버라이딩 예제
3. 마치며
| 오버로딩 | 오버라이딩 |
---|
메소드 이름 | 동일 | 동일 |
매개변수, 타입 | 달라야함 | 동일 |
리턴 타입 | 상관없음 | 동일 |