추상 클래스

추상 클래스

추상 클래스는 상속 관계에서 추상화된 클래스들을 구현하기 위해 지원하는 형태이다. 추상 클래스를 이용하여 상속 구조를 조금 더 효율적이고 빠르게 구현할 수 있다.

추상 클래스의 형태

추상 클래스는 일반 클래스와 다르게 추상(abstract) 키워드를 표시해야 한다.

Phone.java
public abstract class Phone {

}

추상 클래스는 일반 클래스와 다르게 다음의 항목을 가질 수 있다.

  • 추상 메소드(abstract method)

추상 클래스는 일반 클래스와는 다르게 다음 역할을 수행할 수 없다.

  • 객체 생성

추상 메소드

추상 메소드는 기능에 대한 형태만 정의하고 세부 내용을 정의하지 않는 메소드를 말하며, 공통적으로 존재해야 하지만 내용은 다를 수 있는 기능을 상위클래스에 정의할 때 사용한다. 모든 전화기에 전화 기능이 있어야 하지만 어떤 형태로 구현되어야 할 것인지는 각각의 제품마다 다르다고 할 때 Phone 클래스를 만들어 추상 형태로 전화(call) 기능을 만들 수 있다.

Phone.java
public abstract class Phone {
    public abstract void call();
}

추상메소드는 추상(abstract) 키워드를 붙여야 하며, 코드 블록을 가질 수 없다. 이러한 추상 메소드는 일반 클래스가 상속받을 경우 반드시 재정의(Override)를 수행해야 한다.

추상 클래스의 상속

추상 클래스 역시 클래스이므로 extends 키워드를 이용하여 상속받는다.

public class V60 extends Phone {
    @Override
    public void call(){
        System.out.println("V60 전화 기능 실행!");
    }
}

상속을 받으면 추상 메소드에 대한 재정의를 요구하는 오류가 발생하며, 이를 해결하기 위해 추상 메소드인 call() 을 재정의한다. 추상 클래스를 이용하면 문법적으로 메소드 재정의를 강요할 수 있기 때문에 일관성 유지와 개발 속도 향상에 도움이 된다.

Last updated