몸체없는 메서드(추상 메서드)를 포함한 클래스이다. (미완성 설계도)
ex)
public abstract class Animal { }
특징
미완성 클래스이기 때문에 단독으로 객체 생성이 불가능해서 반드시 상속해야 자식 객체의 일부분으로 생성할 수 있다. (미완성인 부분은 자식 객체가 오버라이딩으로 완성하기 때문이다.)
추상 메서드가 있으면 반드시 추상 클래스이다.
단, 추상 메서드가 없고 미완성인 부분이 없어도 객체로 만들지 않기 위해
추상 클래스를 선언하는 예외의 경우가 있다.
클래스 내에 일반 변수, 메소드를 포함할 수 있다.
객체 생성은 안되지만 참조형 변수 타입으로는 사용이 가능하다.
장점
상속 받은 자식에게 공통된 멤버를 제공한다.
일부 기능의 구현을 강제화한다. (오버라이딩)