JAVA

자바의 추상 클래스

D_Helloper 2023. 6. 4. 18:15

추상클래스(Abstract class)

  • 미완성 클래스
  • 다른 클래스에서 사용하기 위한 보조 클래스
//추상 메서드는 아래와 같이 선언만 되어있고 구현부가 없는 메서드,
//반드시 구현이 이루어져야 하기 때문에 private은 불가
public abstract class 클래스명()

// 추상 클래스는 아래와 같이 클래스 앞에 abstract가 붙음
abstract class 클래스이름 {
    ...
    ...
}

추상클래스의 특징

  • 기본 클래스의 특징을 모두 가지고 있음
    • 상태를 가질 수 있다.
  • 직접 객체 생성 불가
    • 간접적으로만 가능 → 자식 클래스에 의해서
  • 추상메서드를 포함할 수 있다.
  • 추상 클래스는 항상 추상 메서드를 포함할 필요는 없음
    • 하지만 추상 메소드를 하나라도 가지는 클래스는 반드시 추상 클래스가 되어야 함

추상 클래스와 인터페이스

공통점

  • 직접 객체 생성이 불가능
  • 참조변수의 타입으로 사용 가능

차이점

  • 추상클래스는 is a 관계의 경우 주로 사용
  • 인터페이스는 has a 관계의 경우
    • 해당 클래스가 특정 기능들을 구현해야 하는 경우