[java] 자바 추상 클래스의 정의와 특징

자바에서 추상 클래스는 다른 클래스들이 상속하여 사용할 수 있는 클래스입니다. 추상 클래스는 일반 클래스와는 다르게 직접적으로 인스턴스화 할 수 없으며, 추상 메소드를 가질 수 있습니다. 추상 클래스는 추상 메소드를 포함하고 있기 때문에, 이를 상속받은 하위 클래스에서 반드시 구현해야 하는 메소드입니다. 추상 클래스는 다음과 같은 특징을 가지고 있습니다:

  1. 추상 클래스는 abstract 키워드를 사용하여 선언됩니다.
    public abstract class AbstractClass {
     // 추상 메소드와 일반 메소드가 포함될 수 있음
     public abstract void abstractMethod();
     public void concreteMethod() {
         // 구현 코드
     }
    }
    
  2. 추상 클래스는 직접적으로 인스턴스화 되지 않으므로, 다음과 같이 상속하여 사용합니다.
    public class ConcreteClass extends AbstractClass {
     // 추상 메소드 구현
     public void abstractMethod() {
         // 구현 코드
     }
    }
    
  3. 추상 클래스는 반드시 추상 메소드를 포함해야 합니다. 추상 메소드는 메소드의 시그니처만을 선언하고, 구현 코드가 없는 메소드입니다.
    public abstract void abstractMethod();
    
  4. 추상 클래스에서 일반 메소드를 선언할 수 있으며, 하위 클래스에서 공통으로 사용될 수 있습니다.

  5. 추상 클래스는 인터페이스와 다른 점이 있습니다. 추상 클래스는 필드를 가질 수 있고, 메소드의 구현 코드를 포함할 수 있지만, 인터페이스는 상수와 추상 메소드만을 가질 수 있습니다.

  6. 추상 클래스는 목적에 따라 다양한 하위 클래스를 가질 수 있으며, 이를 통해 다형성을 구현할 수 있습니다.

추상 클래스는 다른 클래스들이 공통으로 가져야 하는 속성과 메소드를 정의하는데 유용합니다. 추상 클래스를 사용하면 클래스 계층 구조를 구성할 수 있으며, 개발자들이 코드 재사용과 유연한 설계를 할 수 있습니다.

참고 자료