Java 입문 | 클래스(Class) | 추상 클래스(Abstract class)

추상 클래스(abstract class)

추상 클래스(abstract class)는 하위 클래스에서 구현될 추상적인 기능이 포함된 클래스이다. 즉, 추상 클래스는 ‘추상적인 형태’만 제안하고, 실제 구현은 하위 클래스로 미루기 위한 용도로 사용된다.

추상 메소드(abstract method)는 추상 클래스 내에 정의되는 선언 부분만 있고 구현 부분이 없는 메소드이다. 이 메소드는 추상 클래스를 상속한 하위 클래스에서 구현을 강제화하여 재정의(Overriding)을 하도록 한다. 만약 상속 받은 추상 클래스에서 추상 메소드를 재정의를 하지 않으면 그 하위 클래스도 추상 클래스가 되어야 한다. 단, 한개라도 추상 메소드를 갖은 클래스는 무조건 추상 클래스가 된다.

추상 클래스로만 객체 인스턴스를 생성할 수 없다. 즉, new키워드를 이용해서 객체를 선언할 수 없다는 것을 뜻한다. 불안적인 메소드인 추상 메소드를 포함하고 있기 때문이다. 따라서 추상 클래스를 상속 받은 하위 클래스에서 추상 메소드를 재정의 한 후에 하위 클래스의 객체로서 생성이 가능하다.

추상 클래스 및 메소드 정의

추상 클래스와 추상 메소드는 abstract 키워드를 사용한다. 추상 메소드는 구현 부분이 없기 때문에 메소르를 선언 후 바로 세미콜론(;)으로 마무리 한다.

abstract class 클래스명 {
    // 맴버변수(일반 클래스 맴버변수와 동일)
    // 메소드(일반 클래스 메소드와 동일)
   
    abstract 리턴타입 추상메소드명(매개타입 매개변수);
}