추상클래스란?
- 추상메소드를 포함하고 있는 클래스를 의미한다.
- 꼭 추상메소드만 있어야 한다는 것이 아니다!
- 추상메소드 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();
}
}
왜 추상화하는가?
보다 구조적이게 객체를 설계하고, 프로그램의 유지보수성을 올려준다.
- 만일 프로그램에 어떠한 기능을 업그레이드한다고 하면 수정이나 추가에 대해 유연하게 대응할 수 있게 만들어 퀄리티 높은 프로그램과 솔루션을 개발할 수 있게 해준다.
- 실제로 추상 클래스는 개별 프로젝트 보다는 범용 라이브러리나 프레임워크을 설계하는데 유용하게 사용된다.