함수명이 고유한 C언어는 하나의 함수가 하나의 기능만을 구현해야 함
반면, 자바에서는 하나의 메소드 이름으로 여러 기능을 구현 가능
한 클래스 내에 같은 이름을 가진 메소드가 있더라도 매개변수의 개수 또는 타입이 다르면, 같은 이름을 사용해서 메소드를 정의가능
같은 기능을 하는 메소드를 하나의 이름으로 사용가능
ex)println 메소드의 경우 int, double, boolean, String 등의 아주 다양한 타입의 매개변수로 동일한 기능을 함
부모 클래스로부터 상속받은 메소드를 자식 클래스에서 재정의하는 것
자식 클래스에서 상황에 맞게 변경해야 하는 경우 사용
자식 클래스에서 오버라이딩하고자 하는 메소드의 이름, 매개변수, 리턴 값이 모두 같아야 함
@Override
오버라이딩을 검증하는 기능
코드상으로 검사했을 때 오버라이딩이 실제로 시행되지 않았다면 컴파일시 오류를 출력
오버로딩 - 기존에 없는 새로운 메소드를 추가하는 것
오버라이딩 - 상속받은 메소드를 재정의 하는 것
구분 | Overriding | Overloading |
---|---|---|
접근 제어자 | 부모 클래스의 메소드보다 더 넓은 범위의 접근 제어자를 자식 클래스의 메소드에서 설정 | 모든 접근 제어자를 사용 |
리턴형 | 동일 | 상관없음 |
메소드명 | 동일 | 동일 |
매개변수 | 동일 | 달라야 함 |
적용 범위 | 상속관계 | 같은 클래스 내 |