당신이 요리를 하는 상황에 놓여있다고 가정하자
또한 당신에게는 한 권의 레시피이 놓여 있다.
당신이 레시피를 자신의 스타일을 반영해서 새로 레시피를 적을 때 이걸 Override(=재정의)라고 한다.
그리고 하나의 요리를 완성시키는 레시피는 하나만 있지 않는다
파스타를 만드는 레시피에도 면을 익히는 방법도 여러가지 소스를 만드는 방법도 여러가지다.
파스타 면 역시 여러가지다
위처럼 같은 레시피지만 재료나 방법이 다른 것이 오버로딩이다.
Override는 상속받은 클래스에서 부모 클래스의 메소드를 다시 새롭게 정의하는 것이고
Overload는 같은 이름의 메소드나 함수를 매개변수의 타입, 순서, 개수를 다르게 해서 여러개 정의 하는 것이다.