프로그래밍에서 필요한 데이터를 추상화 시켜 상태와 행위를 가진 객체로 만들고 객체들간의 상호작용을 통해 프로그램을 만드는 것을 말합니다.
클래스는 객체를 정의하고 만들어 내기 위한 설계도 혹은 틀을 말하고 인스턴스는 클래스를 통해 만들어진 대상(객체)이 실제로 구현된 구체적인 실체를 말합니다.
오버라이드는 상속 받은 부모 클래스로 부터 자식 클래스가 메서드를 재정의 하는 것을 말합니다. 자식 클래스의 상황에 따라 맞춰서 메서드를 재정의하거나 그대로 사용할 수 있습니다. 오버로드는 같은 이름을 가진 여러 개의 메서드가 있고 같은 이름을 가진 메서드들의 매개변수 타입 또는 매개변수 개수가 서로 다른 것들을 말합니다.
보통 애플리케이션은 OS에 종속되어 OS를 통해 실행이 되지만 자바 애플리케이션은 OS에 종속되지 않고 실행이 되는데 OS에 종속이 되지 않고 실행이 가능하도록 하게 하는 것이 JVM입니다.
추상클래스는 객체의 추상적인 상위 개념으로 공통된 개념을 표현할 때 사용합니다. 단일 상속만 가능하고 추상클래스는 상속하는 집합간에는 연관관계가 있습니다.
인터페이스는 구현 객체가 같은 동작을 한다는 것을 보장하기 위해 사용합니다. 다중 상속이 가능하고 인터페이스를 구현하는 집합간에는 관계가 없을 수 있습니다.