산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> C 언어

C# 추상 클래스(Abstract Class) 완벽 가이드: 실전 코드 예제

C#에서 추상 클래스(Abstract Class)란?

추상 클래스는 다른 클래스를 위한 청사진 역할을 합니다. 직접 인스턴스화할 수 없으며 abstract 키워드로 표시됩니다. 추상 클래스는 일반적으로 서브클래스가 구현하거나 재정의해야 하는 하나 이상의 abstract 또는 virtual 메서드를 포함합니다. 공통 계약을 제공하면서 구체적인 서브클래스가 특정 동작을 제공하도록 허용합니다.

다음 예제를 살펴보겠습니다. 개, 고양이 또는 기타 어떤 동물인지 알 수 없는 일반적인 Animal 클래스를 먼저 정의합니다. Description 메서드는 파생 클래스에서 특수화될 플레이스홀더입니다.

C# 추상 클래스(Abstract Class) 완벽 가이드: 실전 코드 예제

구체적인 동물 타입을 알면 Animal을 상속하는 Dog 같은 서브클래스를 만듭니다. Dog 클래스는 기본 Description 메서드를 변경할 수 없고, 대신 자체 구현을 제공하거나 DogDescription 같은 새 메서드를 추가합니다. 이는 C# 추상 클래스의 핵심 개념인 기본 계약과 구체적 서브클래스가 세부사항을 채우는 패턴을 보여줍니다.

C# 추상 클래스(Abstract Class) 완벽 가이드: 실전 코드 예제

C#에서 추상 클래스 만들기

아래는 추상 클래스와 이를 사용하는 구체적 서브클래스를 정의하는 단계별 가이드입니다. 온라인 에디터에서 실행하지는 않지만, 추상 클래스 설계 모범 사례를 보여주는 코드입니다.

1단계: 추상 클래스 정의

Tutorial이라는 추상 클래스를 생성하고 단일 virtual 메서드를 포함시킵니다. virtual 키워드는 파생 클래스가 이 메서드를 재정의할 수 없음을 나타냅니다.

C# 추상 클래스(Abstract Class) 완벽 가이드: 실전 코드 예제

코드 설명

  1. abstract 키워드로 클래스를 선언하여 직접 인스턴스화 방지
  2. 클래스 내부에서 Set 메서드를 public virtual void Set()로 정의하여 서브클래스가 변경 없이 상속받도록 함

2단계: 파생 클래스 생성

동일 파일에서 Tutorial을 상속하는 구체적 클래스 Guru99Tutorial을 정의합니다. 서브클래스는 자체 속성과 메서드를 도입하면서 추상 베이스가 확립한 계약을 준수합니다.

C# 추상 클래스(Abstract Class) 완벽 가이드: 실전 코드 예제

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
namespace DemoApplication { 
    abstract class Tutorial { 
        public virtual void Set() { 
            // 기본 구현 (현재 비어 있음) 
        } 
    } 
    class Guru99Tutorial : Tutorial { 
        protected int TutorialID; 
        protected string TutorialName; 
        public void SetTutorial(int pID, string pName) { 
            TutorialID = pID; 
            TutorialName = pName; 
        } 
        public string GetTutorial() { 
            return TutorialName; 
        } 
        static void Main(string[] args) { 
            Guru99Tutorial pTutor = new Guru99Tutorial(); 
            pTutor.SetTutorial(1, ".Net"); 
            Console.WriteLine(pTutor.GetTutorial()); 
            Console.ReadKey(); 
        } 
    } 
}

핵심 포인트는 Guru99Tutorial이 Tutorial에 정의된 Set 메서드를 재선언할 수 없으며, 상속된 버전을 그대로 사용해야 한다는 것입니다.

요약

C# 추상 클래스는 확장 가능한 시스템 구축을 위한 견고한 토대를 제공합니다. 공통 동작을 인스턴스화할 수 없는 베이스 클래스에 선언함으로써 개발자는 계약을 강제하면서 파생 클래스가 구체적 구현을 제공하도록 허용합니다. 이 패턴은 대규모 코드베이스에서 코드 재사용, 명확성, 강한 타이핑을 촉진합니다.

C 언어

  1. C# 추상 클래스와 추상 메서드: 실전 가이드
  2. C++ 연산자 총정리: 종류, 예제, 샘플 프로그램
  3. C++ 구조체(struct) 완벽 가이드: 선언, 인스턴스, 포인터, 함수 인자 전달
  4. C++ std::list 마스터하기: 문법, 함수, 실전 예제
  5. C++ 구조체 vs 클래스: 핵심 차이, 문법, 최적 사용 사례
  6. C# 추상 클래스(Abstract Class) 완벽 가이드: 실전 코드 예제
  7. Java 인터페이스 vs 추상 클래스: 올바른 추상화 선택 가이드
  8. 자바 추상화: 코드 단순화와 가독성 향상
  9. C++ 데이터 추상화 마스터하기: 인터페이스와 구현 분리로 설계 단순화
  10. C++ 인터페이스: 추상 클래스와 순수 가상 함수 마스터하기