구현부가 없는 추상 메소드를 하나 이상 포함하고 있는 클래스.
다형성을 보장한다는 것은 다음과 같은 조건을 요구한다.
다형성은 '동일한 메시지로 서로 다른 동작'의 결과가 나타나야 보장된다. 만일, 상위 클래스의 동작을 하위 클래스가 재정의하지 않는다면 보장되지 않는다.
따라서, 반드시 재정의가 되도록 강제할 필요가 있는데, 이는 상위 클래스를 추상클래스 또는 인터페이스로 두고 하위 인스턴스 생성 시 추상 메소드를 재정의하지 않는다면 문제가 발생하도록 한다.
접근 제어자
구성 필드 | 생성자 | getters, setters | 추상메소드를 포함한 메소드
super()를 호출하므로 가질 수 있다.public abstract class A{
abstract 반환타입 메소드명();
}
위와 같이 선언부만 작성하고 구현부를 작성하지 않는다.
추상 메소드는 static이나 final 키워드를 사용할 수 없다.
구현부가 없는 추상 메소드를 하나 이상 포함하고 있으며, 구현된 메서드를 가질 수 있다.
다형성을 일부(모든 메소드가 추상 메소드가 아니어도 됨) 보장하기 위해 등장.
공통 동작의 메서드를 상위 클래스의 추상 메소드로 선언하고 서로 비슷한 클래스가 공통 동작을 자신에 맞게 재정의 => 서로 비슷한 클래스의 공통부분을 묶을 때 사용.
cannot be instantiated 단독으로 인스턴스화할 수 없다.
