오버로딩 vs 오버라이딩
오버로딩(Overloading) : 기존에 없는 새로운 메서드를 정의
- 메서드 이름 같아야함.
- 매개변수 타입이나 갯수가 달라야함.
- 반환타입 상관없음.
- 예외처리 상관없음.
- 접근제한 상관없음.
- 오버로딩된 메서드 선택기준
1.호출시 입력된 자료형과 선언부의 선언된 자료형이 동일한 메서드 선택.
2.1의 조건이 없는 경우. - 최소 갯수로 오토캐스팅이 되는 매개변수를 가진 메서드를 선택.
3.주의사항 : 최소 갯수로 오토캐스팅이 되는 메서드가 여러개인 경우 오류 발생.
오버라이딩(Overriding) : 상속받은 메서드의 내용을 변경
- 메서드 이름 같아야함.
- 매개변수 같아야함.
- 반환타임 같아야함.
- 예외처리 같거나 좁은 범위의 예외처리 가능. ex) 부모: throws Exception / 자식 : throws IOException
- 접근제한 같거나 넓은 범위이여야함.
[오버라이딩 되는 메서드의 접근제어자는 상위클래스 메서드의 접근제어자보다 같거나 덜 제한적이여야 한다. (상위클 래스 ≤ 하위클래스)]