추상 클래스
추상 클래스
추상 클래스는 상속 관계에서 추상화된 클래스들을 구현하기 위해 지원하는 형태이다. 추상 클래스를 이용하여 상속 구조를 조금 더 효율적이고 빠르게 구현할 수 있다.
추상 클래스의 형태
추상 클래스는 일반 클래스와 다르게 추상(abstract) 키워드를 표시해야 한다.
public abstract class Phone {
}
추상 클래스는 일반 클래스와 다르게 다음의 항목을 가질 수 있다.
추상 메소드(abstract method)
추상 클래스는 일반 클래스와는 다르게 다음 역할을 수행할 수 없다.
객체 생성
추상 메소드
추상 메소드는 기능에 대한 형태만 정의하고 세부 내용을 정의하지 않는 메소드를 말하며, 공통적으로 존재해야 하지만 내용은 다를 수 있는 기능을 상위클래스에 정의할 때 사용한다. 모든 전화기에 전화 기능이 있어야 하지만 어떤 형태로 구현되어야 할 것인지는 각각의 제품마다 다르다고 할 때 Phone 클래스를 만들어 추상 형태로 전화(call) 기능을 만들 수 있다.
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