본문/내용
1. 추상 클래스(abstract class)
추상 클래스는 객체 지향 프로그래밍에서 중요한 개념 중 하나로, 클래스의 일종으로서 직접 인스턴스를 생성할 수 없는 특성을 가진다. 이는 여러 클래스에 공통적으로 적용되는 속성과 행동을 정의하기 위해 사용되며, 다른 클래스들이 이를 상속받아 구체적인 구현을 제공하도록 유도한다. 추상 클래스는 일반적인 클래스로서의 기능을 가지면서도, 특정 메소드를 추상적으로 정의하여 서브클래스에서 반드시 구현하도록 강제하는 역할을 한다. 이러한 방식은 코드 재사용성을 높이고, 코드의 일관성을 유지하는 데 크게 기여한다. 추상 클래스는 주로 상속 구조를 통해 사용되며, 상위 클래스에 정의된 속성과 메소드를 하위 클래스가 상속받아 사용할 수 있다. 여기서 하위 클래스는 상위 클래스에서 선언한 추상 메소드를 반드시 구현해야 하며, 이를 통해 상위 클래스에서 정의한 공통의 형태를 따르도록 강제하는 것이다. 예를 들어, `동물`이라는 추상 클래스를 정의하고, 이 클래스에 `소리내기`라는 추상 메소드를 선언할 수 있다. 이후 `개`와 `고양이`라는 하위 클래스를 생성할 때, 각각의 클래스에서 `소리내기` 메소드를 …