태그: abstract 키워드

출간일 2016년 11월 28일

판매가 2000원

형태 ebook

학습에 도움이 되시면 ebook을 구입하여 소장하시면 감사하겠습니다.

언제나 휴일 출판사의 수익금의 대부분은 아프리카에 기부하고 있습니다.


5. 3 추상화

java에서는 abstract 키워드를 사용하여 추상 클래스와 추상 메서드를 만들 수 있습니다.

 

추상 클래스는 개체를 생성할 수 없고 기반 클래스의 역할만 수행하는 클래스입니다. 추상 클래스를 만들 때는 class 정의문 앞에 abstract 키워드를 명시합니다.

 

추상 메서드는 메서드 내부 정의가 없는 메서드입니다. 이는 파생 형식에서 재정의해야 합니다. 추상 메서드를 만들 때도 메서드 앞에 abstract 키워드를 명시합니다. 그리고 추상 메서드를 하나라도 있으면 반드시 추상 클래스로 지정해야 합니다.

[소스 5.6] 추상화 예

실행 결과

 

그리고 다른 추상 클래스를 기반으로 파생 클래스 또한 추상 클래스로 정의할 수도 있습니다. 이 때 파생 클래스(이 또한 추상 클래스)에서는 기반 클래스의 추상 메서드를 꼭 정의할 필요는 없습니다. 추상 클래스의 상대적인 개념인 개체 인스턴스를 생성하는 것을 허용하는 클래스를 구상 클래스라고 부릅니다. 그리고 구상 클래스는 기반 클래스에서 약속한 모든 추상 메서드를 구현해야 합니다.

 

다음의 예는 BaseAClass 추상 클래스를 기반으로 파생 클래스 DerivedAClass(이 또한 추상 클래스)를 정의하고 이를 기반으로 파생한 DrivedClass(구상 클래스)를 정의한 예제입니다.

[소스 5.7] 계층화 추상 클래스 예

실행 결과

프로그래밍에서 추상 클래스를 사용하는 목적은 다양할 수 있습니다. 특히 여러 종류의 파생 클래스의 공통적인 부분을 기반 클래스에 정의하여 같은 방법으로 사용한다는 상속과 다형성의 기본적인 목적이 제일 중요합니다. 특히 파생 클래스에서 제공할 메서드의 시그니쳐는 같지만 구체적인 구현이 다를 수 있을 때 추상 클래스에서 “이러한 기능을 제공하는 메서드를 정의할게요.”라고 약속하고 파생 클래스(구상 클래스)에서 이러한 약속을 구체적으로 구현하여 상속과 다형성의 장점을 보다 높일 수 있습니다.