0Pricing
C# Academy · 강의

추상 클래스

추상 클래스와 파생 클래스의 공통 구조를 만드는 역할을 살펴보세요

추상 클래스은(는) CoddyKit의 무료 C# Academy 강의입니다. 이것은 6개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 C# Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. C# Academy 강의에는 총 6개의 강의가 포함되어 있습니다.

추상 클래스

추상 클래스

다음 수업에 오신 것을 환영합니다! 이 수업에서는 C#의 추상 클래스와 그 목적, 그리고 추상 클래스가 인터페이스와 어떻게 다른지 배웁니다. 시작해 보겠습니다!

추상 클래스 — 일러스트레이션 1

추상 클래스란?

추상 클래스란?

추상 클래스는 직접 인스턴스화할 수 없는 클래스입니다. 다른 클래스를 위한 설계도 역할을 하며, 파생 클래스에서 구현해야 하는 추상 메서드를 포함할 수 있습니다.

핵심 내용: 추상 클래스에는 완전히 구현된 메서드와 선언만 되어 있는 메서드(추상 메서드)를 모두 포함할 수 있습니다.

추상 클래스 정의하기

추상 클래스 정의하기

추상 클래스를 정의하려면 abstract 키워드를 사용하십시오. 예시는 다음과 같습니다.

팁: 관련 클래스에 공통 기반을 제공하려면 추상 클래스를 사용하십시오.

using System;

abstract class Animal {
    public abstract void Speak(); // Abstract method
    public void Sleep() { // Non-abstract method
        Console.WriteLine("The animal is sleeping.");
    }
}

추상 클래스 구현하기

추상 클래스 구현하기

파생 클래스는 추상 클래스의 모든 추상 메서드를 구현해야 합니다. 예시는 다음과 같습니다.

핵심 내용: 추상 메서드는 파생 클래스에서 구현해야 하는 동작을 정의합니다.

using System;

abstract class Animal {
    public abstract void Speak(); // Abstract method
    public void Sleep() {
        Console.WriteLine("The animal is sleeping.");
    }
}

class Dog : Animal {
    public override void Speak() {
        Console.WriteLine("The dog barks.");
    }
}

class Program {
    static void Main() {
        Dog myDog = new Dog();
        myDog.Speak(); // Outputs: The dog barks.
        myDog.Sleep(); // Outputs: The animal is sleeping.
    }
}

추상 클래스와 인터페이스 비교

추상 클래스와 인터페이스 비교

추상 클래스와 인터페이스는 모두 추상화에 사용되지만, 여러 측면에서 서로 다릅니다.

  • 추상 클래스에는 구현된 메서드와 추상 메서드를 모두 포함할 수 있지만, 인터페이스에는 C# 8.0 이전에는 추상 메서드만 포함할 수 있었습니다.
  • 추상 클래스에는 필드, 생성자, 멤버에 대한 접근 제한자를 포함할 수 있습니다.
  • 클래스는 추상 클래스 하나만 상속할 수 있지만, 여러 인터페이스를 구현할 수 있습니다.

팁: 밀접하게 관련된 클래스에는 추상 클래스를 사용하고, 더 폭넓은 추상화에는 인터페이스를 사용하십시오.

추상 클래스를 사용하는 경우

추상 클래스를 사용하는 경우

다음과 같은 경우 추상 클래스를 사용하는 것이 좋습니다.

  • 공유 기능을 포함하는 공통 기반 클래스를 정의하려는 경우
  • 기본 구현을 제공하는 비추상 메서드를 포함해야 하는 경우
  • 공통 계층 구조를 공유하는 관련 클래스를 다루는 경우

예시: Circle과 Rectangle 클래스를 위한 "Shape" 추상 클래스

연습 과제

연습 과제

CalculateArea()라는 추상 메서드를 포함하는 추상 클래스 Shape를 만드십시오. 파생 클래스 Rectangle과 Circle에서 이 메서드를 구현하십시오. 예시는 다음과 같습니다.

using System;

abstract class Shape {
    public abstract double CalculateArea();
}

class Rectangle : Shape {
    public double Width { get; set; }
    public double Height { get; set; }

    public override double CalculateArea() {
        return Width * Height;
    }
}

class Circle : Shape {
    public double Radius { get; set; }

    public override double CalculateArea() {
        return Math.PI * Radius * Radius;
    }
}

class Program {
    static void Main() {
        Shape rectangle = new Rectangle { Width = 5, Height = 4 };
        Shape circle = new Circle { Radius = 3 };

        Console.WriteLine("Rectangle Area: " + rectangle.CalculateArea());
        Console.WriteLine("Circle Area: " + circle.CalculateArea());
    }
}

추상 클래스 모범 사례

추상 클래스 모범 사례

다음은 몇 가지 모범 사례입니다.

  • 상속해야 하는 공유 기능이 있을 때 추상 클래스를 사용하십시오.
  • 추상 클래스의 역할을 명확하게 유지하고 불필요한 멤버를 추가하지 마십시오.
  • 적절한 경우 추상 클래스를 인터페이스와 함께 사용하십시오.

팁: 추상 클래스는 파생 클래스를 위한 탄탄한 기반을 제공해야 합니다.

잘하셨습니다!

잘하셨습니다!

축하합니다! 공유 동작을 정의하고 파생 클래스 전체에 일관성을 적용하기 위해 추상 클래스를 사용하는 방법을 배웠습니다. 다음 수업에서는 C#의 정적 멤버와 메서드를 살펴보겠습니다. 계속 코딩해 보십시오!

추상 클래스 — 일러스트레이션 10

자주 묻는 질문

“추상 클래스” 강의는 무료인가요?

네 — “추상 클래스” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 C# Academy 강의 전체를 잠금 해제할 수 있습니다. C# Academy 강의에는 총 6개의 강의가 포함되어 있습니다.

“추상 클래스”에서 뭘 배우나요?

추상 클래스와 파생 클래스의 공통 구조를 만드는 역할을 살펴보세요 브라우저에서 직접 실행하는 실습 코드로 C# Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

C# Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 C# Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 6개 중 2번째 강의입니다.

“추상 클래스” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 C# Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 C# Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 인터페이스 입문
  2. 추상 클래스
  3. 정적 멤버와 메서드
  4. 열거형과 구조체 탐색하기
  5. 대리자와 이벤트
  6. 컬렉션 다루기: 목록, 사전, 큐
← C# Academy(으)로 돌아가기