오버로딩(다형성을 구현하는 오버로딩)
- 메소드의 이름은 하나지만 여러가지 형태를 갖음
- 생성자도 메소드의 한 종류이므로 오버로딩이 가능
- 단, 매개변수가 같지만 반환 데이터형이 다른 경우를 오버로딩이라고 착각하지 말자
- 사용법: 메소드의 선언부의 반환형과 메소드 이름은 반드시 같아야 한다.
매개변수의 개수가 데이터형이 반드시 달라야 한다.
- 사용예: public void setStatus (int i){ ... }
public void setStatus (String str){ ... }
- 장점: 오버로딩된 메소드는 편리하다, 클래스에서 메소드 이름을 절약할 수 있다.
오버라이딩(재정의를 가능하게 해주는 오버라이딩)
- "부모클래스에서 자식 클래스와 동일하게 이름의 변수나 메소드가 있다면 자식 클래스의 것이 우선이다." 라고 설명했다. 이것이 바로 오버라이딩을 의미한 것
- 오버라이딩은 중복 정의, 재정의 라는 개념을 갖고 있으며 부모 클래스의 것을 덮어쓰는 역할을 한다.
- 사용법: 오버라이딩은 자식 클래스에서만 적용 가능하다.
- 오버라이딩하고자 하는 메소드와 선언부를 그대로 사용해야 한다. 단, 접근제어자와 예외 처리는 제외한다.
- 메소드를 오버라이딩하는 주된 이유는 상속받은 메소드들 중 수정해야 할 내용이 있을 때 사용하는 기법