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

C#의 기본 클래스(Base Class)와 파생 클래스(Derived Class) 쉽게 이해하기

C#에서 상속(Inheritance)은 객체 지향 프로그래밍의 핵심 개념 중 하나입니다. 하나의 클래스는 하나 이상의 클래스나 인터페이스로부터 파생될 수 있으며, 이를 통해 여러 기본 클래스(부모 클래스) 또는 인터페이스로부터 데이터와 기능을 물려받을 수 있습니다.

기본 클래스와 파생 클래스의 관계

기본 클래스(Base Class)는 공통적인 속성과 동작을 정의하는 부모 역할을 하고, 파생 클래스(Derived Class)는 이를 상속받아 자신만의 기능을 추가하거나 확장합니다.

예를 들어, Vehicle(차량)이라는 기본 클래스가 있다면 다음과 같은 파생 클래스들을 만들 수 있습니다.

Truck (트럭)
Bus (버스)
Motorbike (오토바이)

이때 파생 클래스는 기본 클래스의 멤버 변수와 멤버 메서드를 그대로 물려받기 때문에, 코드의 중복을 줄이고 재사용성을 높일 수 있습니다.

C# 상속 예제 코드

같은 원리로, Shape(도형)라는 기본 클래스의 파생 클래스로 Rectangle(사각형)을 만들 수 있습니다. 아래 예제를 통해 실제 동작 방식을 확인해 보겠습니다.

using System;
namespace Program {
    class Shape {
        public void setWidth(int w) {
            width = w;
        }
        public void setHeight(int h) {
            height = h;
        }
        protected int width;
        protected int height;
    }
    // 파생 클래스
    class Rectangle: Shape {
        public int getArea() {
            return (width * height);
        }
    }
    class Demo {
        static void Main(string[] args) {
            Rectangle Rect = new Rectangle();
            Rect.setWidth(5);
            Rect.setHeight(7);
            // 객체의 넓이 출력
            Console.WriteLine("Total area: {0}", Rect.getArea());
            Console.ReadKey();
        }
    }
}

코드 설명

  • Shape 클래스(기본 클래스): 가로(width)와 세로(height) 값을 설정하는 setWidth(), setHeight() 메서드와 protected로 선언된 멤버 변수를 포함합니다.
  • Rectangle 클래스(파생 클래스): class Rectangle : Shape 구문을 통해 Shape를 상속받으며, 물려받은 변수를 활용해 넓이를 계산하는 getArea() 메서드를 추가했습니다.
  • Demo 클래스: Rectangle 객체를 생성하고 값을 설정한 뒤, 계산된 넓이를 콘솔에 출력합니다.

실행 결과

Total area: 35

가로 5, 세로 7이 설정되어 5 × 7 = 35라는 결과가 출력됩니다. 이처럼 파생 클래스는 기본 클래스의 기능을 그대로 사용하면서 필요한 기능만 추가하여 효율적으로 코드를 작성할 수 있습니다.