추상 클래스(Abstract Class)란?
추상 클래스의 주요 목적은 공통 메소드와 속성을 상속하여 코드 재사용을 촉진하고 다형성을 활용하면서, 메소드의구체적인 구현을 하위 클래스에 위임하는 것이다.
추상 클래스를 정의하려면 abstract 키워드를 클래스 선언 앞에 붙이고, 추상 메소드를 정의할 때도 abstract 키워드를 사용한다. 추상 클래스를 상속하는 하위 클래스는추상 메소드를 구현해야 한다.
추상 클래스는 하나 이상의 추상 메소드를 포함한다. 추상 메소드는 메소드의 시그니처(메소드 이름, 매개변수 목록, 반환 유형)만 정의하고 실제 구현은 하위 클래스에 위임한다. 추상 메소드는 메소드 본문 대신 세미콜론(;)으로 끝난다.
public abstract class 추상클래스 {
public abstract void 추상메소드();
}
추상 클래스는 추상 메소드 외에도 일반 메소드(구현이 있는 메소드)를 포함할 수 있다. 이러한 메소드는 하위 클래스에서 오버라이딩하거나 그대로 상속할 수 있다.
public abstract class 추상클래스 {
public abstract void 추상메소드();
public void 일반메소드() {
// 구현 내용
}
}
추상 클래스는 직접 인스턴스화 할 수 없다. 즉, new 추상클래스()와 같은 객체 생성을 허용하지 않는다. 대신, 추상 클래스를 상속한 구체적인 하위 클래스를 만들어야 한다.
추상 클래스는 다른 클래스에게 공통된 메소드와 속성을 상속하도록 설계된다. 이를 통해 코드 재사용과 다형성을 실현할 수 있다.
추상 클래스에서 정의된 추상 메소드는 하위 클래스에서 반드시 구현되어야 한다. 이것은 메소드의 구체적인 동작을 하위 클래스가 제공하도록 강제한다.