본문 바로가기

Programming/JAVA

overriding and overloading

오버라이딩(overriding)
- 함수의 이름이 같아야 한다.
- 상위 클래스에 동일한 이름의 메소드가 있어야 한다.
- 모든 파라미터의 타입과 개수가 같아야 한다.
- 리턴 값이 같아야 한다.
- 상위 클래스에서 final이나 static으로 선언된 메소드는 overriding될수 없다.
- 오버라이딩은 같은 타입의 파라미터를 받아서 같은 타입의 결과를 돌려 주어야 한다.

오버로딩(overloading)
- 함수의 이름이 같아야 한다.
- 같은 클래스에 함수가 존재하거나 파라미터의 타입이나 개수가 적어도 하나 이상은 달라야 한다.
- 리턴 값은 상관이 없다.
- 상위 클래스에 정의된 메소드보다 더 넓은 범위의 접근 제한자를 갖어야 한다.
- 상위 클래스에 정의된 메소드가 던지는 Exception 와 동일하거나 더 하위의 예외를 던져야 한다.