[C#] 6.1 상속

C#에서 파생된 형식을 정의할 때 기반 형식을 명시하여 상속을 표현합니다. 구조체는 기반 형식으로 인터페이스만 사용할 수 있지만, 클래스는 기반 형식으로 클래스와 인터페이스 모두 사용 가능합니다. 기반 형식에서 파생 형식을 정의할 때는 파생 형식 명 뒤에 콜론을 추가하고 기반 형식의 이름을 지정합니다.

class Base
{
}
class Derived: Base
{
}
클래스 기반의 구조체를 정의할 때 오류 화면
[그림 21] 클래스 기반의 구조체를 정의할 때 오류 화면

  파생 형식의 개체는 생성 과정에서 기반 형식의 개체 부분을 포함하여 생성됩니다.

다음의 예는 Walk 메서드가 있는 Man 클래스를 기반으로 파생된 Student 클래스를 정의한 예입니다. 예를 보시면 파생된 Student 개체를 참조하는 변수를 통해 기반 형식인 Man의 멤버 메서드인 Walk를 사용하는 것을 보실 수 있습니다.

▶ Man 클래스 기반의 파생 클래스 Student 정의

class Man
{
    internal void Walk()
    {
        Console.WriteLine("걷다.");
    }
}
class Student:Man //Man 클래스를 기반으로 파생
{
    internal void Study()
    {
        Console.WriteLine("공부하다.");
    }
}
class Program
{
    static void Main(string[] args)
    {
        Student student = new Student();
        student.Walk(); //기반 클래스 Man의 멤버를 사용
        student.Study();
    }
}

▶ 실행 결과

걷다.
공부하다.

이처럼 파생된 형식의 개체에서는 기반 형식의 멤버를 포함하게 되는데 프로그램에서 파생된 형식을 정의할 때는 “파생된 형식은 기반 형식이다.”라는 논리가 성립될 때 사용하십시오.