Override(오버라이드)는 상위 클래스(superclass)에서 이미 정의된 메서드와 동일한 이름, 매개변수, 반환 유형을 가진 메서드를 하위 클래스(subclass)에서 다시 정의하는 것을 의미합니다. 이로써 하위 클래스에서 상위 클래스의 메서드 동작을 변경하거나 확장할 수 있습니다. 상속관계 클래스에서 사용되며 static, final로 선언한 메서드는 오버라이딩이 불가능하다.
Overload(오버로드)는 같은 메서드 이름을 가지지만 매개변수의 종류, 개수 또는 유형이 다른 여러 메서드를 같은 클래스 내에서 정의하는 것을 말합니다. 이렇게 하면 동일한 메서드 이름을 사용하면서 다양한 매개변수 조합에 대해 다른 동작을 수행할 수 있습니다. 이는 프로그램의 유연성을 높이고 결과적으로 코드를 깔끔하게 하는 효과가 있습니다.
정리하면, Override는 상속 관계에서 상위 클래스의 메서드를 하위 클래스에서 <재정의>하는 것이며, Overload는 같은 클래스 내에서 <메서드 이름은 같지만 매개변수가 다른> 여러 메서드를 정의하는 것입니다.