Develog
로그인

추상클래스

강성현
∙2026년 9월 1일∙조회 4
C# 프로그래밍추상클래스
본문 로딩 중...
1
강성현

새 글이 올라오면 Develog 알림으로 알려드려요

댓글 0

1. 추상클래스란?

추상클래스(abstract class)는 그 자체로는 인스턴스를 만들 수 없고, 물려받는 용도로만 쓰이는 클래스입니다.

 

문법형식 :

public abstract class <클래스이름> { // 멤버 }

csharp
public abstract class Monster {}
public class Slime : Monster {}

Monster m = new Monster() // 안됨.

Monster m = new Slime() // 됨.
  • 추상 멤버가 하나라도 있으면 그 클래스는 반드시 추상클래스여야 합니다.

 


1-1) 추상 메서드

본문 없이 선언만 두고, 파생 클래스가 반드시 구현하게 만드는 메서드 입니다.

csharp
public abstract class Monster
{ 
     public abstract void Attack(); // 내용을 정할 수 없습니다.
}

public abstract class Slime : Monster
{
     public override void Attack()
     {
         Console.WriteLine($"{name} 이(가) 몸을 부딪칩니다."}; // 구현하지 않으면 컴파일 오류 발생.
     }
}
항목일반 메서드virtualabstract
본문있음있음없음
파생이 재정의불가능선택필수
어디에 둘 수 있는가모든 클래스모든 클래스추상 클래스만
재정의를 잊으면해당 없음기본 동작이 실행됨컴파일 오류

 

2. Sealed

abstract와 반대로 더이상 상속하거나 재정의하지 못하게 막는 한정자 입니다.

  • 더 나눌 이유가 없거나
  • 동작이 바뀌면 곤란할 때
csharp
public sealed class Slime : Monster
{
     public override void Attack();
}

public class KingSlime : Slime  // 오류 발생 : 봉인된 클래스는 상속할 수 없습니다.
{
}

 

  • 프로퍼티는 함수라고 볼 수 있다.

public int Id { get; private set; }

public abstract int Id { get; protected set; } // 가능

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

아직 댓글이 없습니다. 첫 번째 댓글을 작성해보세요.

관련 글

제네릭

제네릭

제네릭(generic)이란 클래스나 메서드가 다룰 형식을 정하지 않고, 쓰는 쪽에서 정하게 하는 문법입니다.

9월 9일2
인터페이스

인터페이스

인터페이스(interface)는 특정 동작들을 공통적으로 가지고 있는 것들을 분류하기 위한 용도로 사용됩니다.

9월 8일61
상속

상속

상속이란, 공통된 부분을 한 클래스에 두고, 차이나는 부분만 따로 정의 하는 문법입니다.

8월 31일6
제네릭
C# 프로그래밍Generic

제네릭

제네릭(generic)이란 클래스나 메서드가 다룰 형식을 정하지 않고, 쓰는 쪽에서 정하게 하는 문법입니다.

강성현
200
강성현
∙9월 9일
200
인터페이스
C# 프로그래밍인터페이스

인터페이스

인터페이스(interface)는 특정 동작들을 공통적으로 가지고 있는 것들을 분류하기 위한 용도로 사용됩니다.

강성현
610
강성현
∙9월 8일
610
상속
C# 프로그래밍상속

상속

상속이란, 공통된 부분을 한 클래스에 두고, 차이나는 부분만 따로 정의 하는 문법입니다.

강성현
600
강성현
∙8월 31일
600