abstract 라는 키워드를 사용하며, 일부 메서드는 구현할 수도 잇고, 추상 메서드로 남겨둘 수 있는 클래스다.
공통된 속성과 동작을 정의하면서 일부 기능은 하위클래스에서 반드시 구현하도록 강제할때 사용된다.
extends를 사용하여 상속하며, 객체를 직접 생성 할 수 없다.
인터페이스는 클래스가 반드시 따라야 하는 규칙을 정의하는 일종의 계약이며, 동작을 강제하기 위한 역할을 한다.
interface 키워드로 선언된다.
모든 필드는 public static final(상수)이며, 모든 메서드는 기본적으로 public abstarce이다.
implements 로 구현되며 다중상속이 가능하고, 객체를 직접 생성 할 수 없다.
추상클래스는 클래스로서 해당 클래스를 상속, 확장하기 위해 사용되며, 인터페이스는 해당 인터페이스를 구현한 객체들이 동일한 사용법과 동작을 보장하기 위해 사용된다.
인터페이스는 다중 구현과 느슨한 결합을, 추상 클래스는 코드 재사용과 일관된 구현을 제공한다.