객체지향 프로그래밍 언어의 특징 중 하나인 다형성에서 비롯되는 오버로딩과 오버라이딩은 제대로 알아놓지 않으면 헷갈리는 개념이다. 이 두가지 개념은 기술 면접이나 전공 시험에서도 많이 나오는 개념이니, 한번 정리해서 머리에 넣어두자. 오버로딩 (overloading) 오버로딩은 하나의 클래스에 이름은 같지만 매개변수의 수나 타입이 다른 메소드를 추가적으로 선언하는 것이다. 오버로딩의 특징은 다음과 같다. 메소드 이름이 같아야 한다. 파라미터 개수가 달라야 한다. 파라미터 개수가 같을 경우, 데이터 타입이 달라야 한다. 리턴형은 같아도 되고 달라도 된다. (다른 거 다 같고 리턴형만 다르면 오버로딩이 아니다.) 오버라이딩 (overriding) 오버라이딩은 상속관계에 있는 메소드와 동일한 이름, 파라미터를 ..