- 클래스가 설계도라면 추상클래스는 '미완성 설계도'
- 추상메서드(미완성 메서드)를 포함하고 있는 클래스
- 일반메서드가 추상메서드를 호출할 수 있음
(호출할 때 필요한 건 선언부)
- 완성된 설계도가 아니므로 인스턴스를 생성할 수 없음
- 다른 클래스를 작성하는데 도움을 줄 목적으로 작성됨
- 선언부만 있고 구현부(몸통, body)가 없는 메서드
- 꼭 필요하지만 자손마다 다르게 구현될 것으로 예상되는 경우에 사용
- 추상클래스를 상속받는 자손클래스에서 추상메서드의 구현부를 완성해야 함.
주석으로 설명..
// 추상적 클래스
// abstract class는 '종족'을 의미한다
abstract class 가구{
String name;
}
// 구체적 클래스
class 의자 extends 가구{
public 의자(String name) {
this.name = name;
}
}
public class S07 {
public static void main(String[] args) {
// 추상 클래스는 인스턴스화 할 수 없다.
// new 가구();
의자 chair = new 의자("시디즈 의자");
가구 chair1 = new 의자("흔들 의자");
}
}