Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C# 다중 레벨 상속(Multilevel Inheritance) 개념과 예제 완벽 정리

다중 레벨 상속(Multilevel Inheritance)은 하나의 파생 클래스(자식 클래스)가 또 다른 파생 클래스로부터 다시 상속받아 만들어지는 상속 구조를 말합니다. 즉, 클래스들이 마치 사슬처럼 계층적으로 연결되는 형태입니다.


이 개념을 이해하기 가장 좋은 예는 바로 할아버지 → 아버지 → 아들의 가족 관계입니다. 아들은 아버지에게 물려받고, 아버지는 다시 할아버지에게 물려받으므로, 결과적으로 아들은 할아버지의 특성까지 모두 물려받게 됩니다.


C# 다중 레벨 상속(Multilevel Inheritance) 개념과 예제 완벽 정리


C# 다중 레벨 상속 예제 코드

아래 예제는 C#에서 다중 레벨 상속을 어떻게 구현하는지 보여줍니다. Son 클래스는 Father 클래스를 상속하고, Father 클래스는 다시 Grandfather 클래스를 상속합니다.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Demo {

   class Son : Father {
      public void DisplayTwo() {
         Console.WriteLine("Son..");
      }
      static void Main(string[] args) {
         Son s = new Son();
         s.Display();      // Grandfather 클래스의 메서드 호출
         s.DisplayOne();   // Father 클래스의 메서드 호출
         s.DisplayTwo();   // Son 클래스 자신의 메서드 호출
         Console.Read();
      }
   }

   class Grandfather {
      public void Display() {
         Console.WriteLine("Grandfather...");
      }
   }

   class Father : Grandfather {
      public void DisplayOne() {
         Console.WriteLine("Father...");
      }
   }
}

실행 결과

Grandfather...
Father...
Son..

코드 분석 및 핵심 포인트

실행 결과를 보면 Son 객체 하나만 생성했음에도 불구하고 세 클래스에 정의된 모든 메서드가 순서대로 호출된 것을 확인할 수 있습니다.

  • Grandfather 클래스: 최상위 부모 클래스로 Display() 메서드를 정의합니다.
  • Father 클래스: Grandfather를 상속하여 DisplayOne() 메서드를 추가로 정의합니다.
  • Son 클래스: Father를 상속하므로, 조부모인 Grandfather의 멤버까지 모두 접근할 수 있습니다.

이처럼 C#에서는 상속 체계가 여러 단계로 이어져도, 최하위 자식 클래스는 상속 사슬 위에 있는 모든 부모 클래스의 public 멤버를 그대로 사용할 수 있습니다. 이것이 다중 레벨 상속의 핵심 원리이며, 코드의 재사용성을 높이고 계층적인 구조를 명확하게 표현하는 데 큰 도움이 됩니다.