오버로딩(overloading)과 오버라이딩(overriding)은 명칭은 비슷하지만 사용하는 상황과 용도는 엄연히 구분된다. 오버로딩은 메소드명은 같지만 매개변수의 개수 또는 타입이 다른 것을 의미한다. 컴파일 시 메소드의 이름이 같아도 다른 매개변수로 메소드를 구분할 수 있다. 그러나 오버라이딩은 상속받은 메소드의 내용에 관한 것이다. 상속받은 클래스가 클래스 자신에 맞게 메소드의 내용을 변경하는 경우이다. 오버라이딩을 사용하기 위해서는 상속받은 메소드의 이름과 매개변수와 반환타입이 모두 같아야만 한다. public class Parent { void parentMethod() {} } public class Child extends Parent { void parentMethod(int i) {} ..