상속은 객체 지향 프로그래밍의 기본 개념으로, 코드를 효율적이고 재사용 가능하게 만드는 것을 가능하게 합니다. 이 가이드에서는 상속이 무엇인지, 그리고 그것을 실질적으로 어떻게 구현할 수 있는지를 배우게 됩니다. C#에서 기본 클래스를 생성하고 해당 하위 클래스를 만드는 과정에 중점을 둡니다. 단계를 바로 시작해 보겠습니다.
주요 발견 사항
- 상속은 하위 클래스가 기본 클래스의 속성과 메소드를 재사용할 수 있도록 합니다.
- ‘private’ 및 ‘protected’와 같은 접근 수정자는 어떤 클래스가 어떤 속성에 접근할 수 있는지를 제어합니다.
- 생성자의 정의 및 구현은 하위 클래스에 필수적입니다.
- 하위 클래스는 기본 클래스의 메소드를 재정의하거나 추가하여 특정 속성에 맞게 조정할 수 있습니다.
단계별 안내
기본 클래스 생성하기
상속을 시작하기 위해 기본 클래스인 자동차를 처음으로 생성합니다. 이를 위해 프로젝트에서 새로운 클래스를 만들고 그 이름을 자동차로 지정할 수 있습니다. 이 클래스는 승용차와 화물차 모두에 해당하는 공통 특성을 포함할 것입니다.

이 기본 클래스에서는 모든 차량에 해당하는 속성을 정의할 것입니다. 여기에 포함되는 것은 모델, 연료 탱크 용량, 연비 및 주행 비용 등이 있습니다. 또한, 이 클래스를 추상 클래스로 설정하여 이 클래스의 인스턴스가 생성될 수 없도록 합니다.
속성과 생성자 정의하기
이제 자동차 클래스에서 특정 속성을 정의할 차례입니다. 하위 클래스가 이에 접근할 수 있도록 protected를 접근 수정자로 사용합니다.
추가로, 기본 클래스의 속성을 초기화하는 생성자를 만듭니다. 이를 통해 공통 요소를 바탕으로 승용차 및 화물차의 새로운 객체를 생성할 수 있게 됩니다.
하위 클래스 생성하기
기본 클래스 자동차가 정의되면 이제 하위 클래스인 승용차 및 화물차를 생성할 수 있습니다. 이 하위 클래스는 자동차의 속성을 상속받고 특정 특성을 추가할 수 있습니다. 승용차를 만들려면 새 클래스를 만들고 자동차에서 상속받도록 지정합니다.

하위 클래스 승용차에 추가 속성 정의하기
승용차 클래스에서 추가적인 특정 속성을 정의할 수 있습니다. 예를 들어, 승용차는 고속도로 주행에 필요한 스티커가 필요합니다.
이제 기본 클래스와 하위 클래스의 특정 속성을 초기화하는 생성자가 필요합니다.
특정 메소드 구현하기
하위 클래스가 생성되면 주행 비용을 계산하는 등의 특정 메소드를 만들어야 합니다. 이 메소드는 기본 클래스의 기본 계산 외에도 하위 클래스의 특정 속성을 기반으로 추가 계산을 할 수 있도록 오버로딩할 수 있습니다.
생성한 클래스 사용하기
클래스가 구현된 후, 마지막으로 이 하위 클래스의 객체를 인스턴스화해야 합니다. 이렇게 하면 구현한 기능을 테스트할 수 있습니다.
요약 - C#의 상속 기초 이해하기
상속은 객체 지향 프로그래밍에서 핵심 개념으로, 코드 구조를 효율적으로 만들고 유지 관리의 부담을 줄일 수 있게 합니다. 기본 클래스와 하위 클래스를 생성함으로써 다양한 차량 유형에 대한 명확한 계층 구조와 특정 속성 및 메소드를 정의할 수 있습니다. 속성과 메소드를 기본 클래스에 어떻게 설정하고, 하위 클래스가 이를 상속받거나 기능을 확장할 수 있는지를 배웠습니다.
자주 묻는 질문
객체 지향 프로그래밍에서 상속의 장점은 무엇인가요?상속은 코드 재사용성을 가능하게 하고, 유지 보수를 용이하게 하며, 명확한 계층 구조를 만듭니다.
추상 클래스란 무엇인가요?추상 클래스는 인스턴스화할 수 없는 클래스이며, 다른 클래스의 기본 클래스로 자주 사용됩니다.
접근 수정자는 어떻게 정의하나요?접근 수정자는 클래스 정의에서 속성 또는 메소드 앞에 지정되며, 예를 들어 public, private 또는 protected와 같이 사용됩니다.
하위 클래스에서 메소드를 어떻게 수정하나요?하위 클래스에서 메소드를 재정의하여 그 기능을 조정하거나 확장할 수 있습니다.
하위 클래스의 생성자는 어떻게 만들나요?하위 클래스에서 생성자를 정의하여 기본 클래스의 생성자를 호출하고 하위 클래스의 특정 속성을 초기화할 수 있습니다.