어떤가요? 새보다 더 구체적이기 때문에 누구든 비둘기의 모습을 떠올릴 것입니다. 이렇게 ‘비둘기’라는 구체적인 단어는 구체적인 클래스를 만들어낼 수 있습니다. 하지만 ‘새’라는 단어는 조금 모호합니다. 어떻게 만들어야 할지 잘 모르겠습니다. 이럴 때 우리는 추상 클래스를 사용합니다.
즉, 새, 가구, 포유류, 음식 같이 단어를 말했을 때 각자 다른 것을 떠올리는 단어는 추상 클래스로 표현할 수 있습니다. 그리고 이렇게 모호한 단어의 클래스는 부모로 수행할 수 있고, 객체는 될 수 없습니다. 구체적인 클래스만 객체가 될 수 있습니다.
그러면 새라는 추상 클래스를 한 번 만들어보겠습니다. <New > Class>를 선택해 Bird 클래스를 만듭니다.
package javaStudy; public class Bird { }
잠시 생각해볼까요? 새가 모호한 클래스이긴 하지만 새라면 분명 여러 공통점이 있을 것입니다. 이때 사용할 수 있는 개념이 있습니다. 바로 37장에서 배운 상속입니다. 추상 클래스에 상속의 장점을 활용한다면 나중에 오리를 만들거나 비둘기를 만들거나 참새를 만들 때, 모든 클래스를 각각 만들어내지 않고 추상 클래스를 부모 클래스로 사용할 수 있습니다.