자바의 상속을 통해서 상위 클래스의 기능을 하위 클래스로 물려줄 수 있었습니다. 하지만, 상속을 하게 되면 하위 클래스는 상위 클래스의 메소드 변경 없이 단순 기능 추가만 할 수 있습니다. 만약 그래야 한다면 제약이 상당할 것입니다. 이런 제약을 벗어나기 위해서 하위 클래스가 부모 클래스의 기본적인 동작을 변경할 수 있어야 하는데 이런 맥락에서 도입된 기능이 메소드 오버 라이딩(overriding)입니다. 메소드 오버 라이딩은 재정의, 새롭게 정의한다는 뜻을 가지고 있습니다. 즉, 부모 클래스에 선언한 메소드를 자식 클래스에서 동일한 메소드명으로 재 정의 해주면, main에서 이 메소드를 호출했을 때, 부모 클래스가 아닌 자식 클래스에 있는 메소드를 호출하게 끔하는 것입니다. package Inferit..