설계만 진행된 클래스로 미완성 클래스이다. 몸체가 없는 메소드(=추상 메소드)를 포함한 클래스로 선언부에 abstract 키워드를 사용한다.
[접근제한자] abstract 반환형 메소드명(자료형 변수명);
미완성 클래스로 abstract 키워드를 사용하며, 자체적으로 객체 생성 불가하며 반드시 상속 후 개체를 생성한다.
abstract 메소드가 포함될 시 반드시 abstract 클래스이며, abstract 클래스는 꼭 abstract 메소드가 있어야 하는 건 아니다.
추상 클래스 내에 일반 변수와 메소드도 포함 가능하다.
객체 생성은 안되지만 참조형 변수 타입으로는 사용 가능하다.
상수형 필드와 추상 메소드만을 작성할 수 있는 추상 클래스의 변형체이다. 상속 시 인터페이스에 구현된 모든 추상 메소드를 구현해야 한다.
[접근 제한자] interface 인터페이스명{}
| 구분 | 추상클래스 | 인터페이스 |
|---|---|---|
| 상속 | 단일상속 | 다중상속 |
| 구현 | extends | implements |
| 추상 메소드 | abstract메소드 0개 이상 | 모든 메소드는 abstract |
| 객체 | 객체 생성 불가 | 객체 생성 불가 |
| 용도 | 참조타입 | 참조 타입 |