추상 클래스( abstract )
어떤 메소드를 추상적으로만 정의하고,
실제로 필요한 곳에 따라서 재정의 해야 하는 강제성을 가진 클래스
즉, 추상 클래스가 부모가 되어 자식에게 물려줄 때 '꼭 재정의해야 한다.' 라는 조건이 붙었다고 보면 됩니다.
추상 클래스를 사용하는 이유
추상 클래스는 상속을 강제하기 위한 것입니다.
즉, 부모 클래스에는 메소드의 시그니처만 정의해놓고 그 메소드의 실제 동작 방법은 이 메소드를 상속받은 하위 클래스의 책임으로 위임하고 있습니다. 사실 코드를 이런 식으로 작성하는 경우는 작은 규모의 프로젝트에서는 거의 없습니다.
추상 클래스의 문법
① 재정의 해야 하는 메소드가 하나라도 있으면 클래스가 추상 클래스가 됩니다.
클래스 안에
public abstract void 메소드명( ); 이라고 선언되어 있다면
이 메소드를 포함한 클래스는 abstract라고 같이 선언하지 않으면 오류가 납니다.
② 추상메소드는 { } 대괄호 안에 정의 해놓지 않습니다.
상속받는 자식 클래스들이 무조건 재정의를 해주어야 하기 때문에 필요가 없는 것입니다.
ex) public abstract void speek( );
③ abstract 클래스는 인스턴스 생성이 불가합니다.
추상적인 개념이기 때문에 실체화를 할 수 없기 때문입니다.
'프로그래밍 언어 > JAVA' 카테고리의 다른 글
[JAVA] 내부 클래스 (inner class) (0) | 2017.09.05 |
---|---|
[JAVA] 예외처리 (2) throws (0) | 2017.09.05 |
[JAVA] 예외처리 (1) try ~ catch, finally (0) | 2017.08.25 |
[JAVA] 인터페이스(interface) (0) | 2017.08.25 |
[JAVA] getter/setter 메소드 (0) | 2017.08.25 |