열렬히.뛰기

추상클래스

Language > 프로그래밍 언어 > Java > 추상클래스

추상클래스란?

  • 추상메소드를 포함하고 있는 클래스를 의미한다.
    • 꼭 추상메소드만 있어야 한다는 것이 아니다!
    • 추상메소드 1개 이상만 있으면 다 추상클래스라는 뜻.
  • 이 자체로는 못 쓰고, 상속을 한 뒤 추상메소드를 완성시켜야 쓸 수 있다.
  • 추상클래스 앞에 제어자 abstract를 붙임으로 써 만들 수 있다.

추상메소드

  • 메서드의 선언부만 구현되어 있는 형태.
  • 안의 내용 = 구현부가 없는 메서드라고 할 수 있다.

예시

다음 코드에서 libft라는 추상클래스를 보자.

java
abstract class libft {
		String x;
		String strdup(String x) {...};
    abstract int length (String t);
}

class libstr extends libft {
    int length(String t) {
        return String.length();
    }
}

왜 추상화하는가?

보다 구조적이게 객체를 설계하고, 프로그램의 유지보수성을 올려준다.

  • 만일 프로그램에 어떠한 기능을 업그레이드한다고 하면 수정이나 추가에 대해 유연하게 대응할 수 있게 만들어 퀄리티 높은 프로그램과 솔루션을 개발할 수 있게 해준다.
  • 실제로 추상 클래스는 개별 프로젝트 보다는 범용 라이브러리나 프레임워크을 설계하는데 유용하게 사용된다.