다중 레벨 상속(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 멤버를 그대로 사용할 수 있습니다. 이것이 다중 레벨 상속의 핵심 원리이며, 코드의 재사용성을 높이고 계층적인 구조를 명확하게 표현하는 데 큰 도움이 됩니다.