C#에서 추상 클래스는 구현이 불완전하여 해당 클래스 자체로는 인스턴스화할 수 없는 클래스를 의미한다.
추상 클래스는 다른 클래스들이 상속하여 그들의 특정 동작을 구현해야 하는 기반 클래스로 사용된다.
추상 클래스는 하나 이상의 추상 메서드를 포함할 수 있으며 추상 메서드는 본체가 없는 메서드로, 파생 클래스에서 반드시 구현해야 한다.
추상 클래스 특징
- 인스턴스화 불가: 추상 클래스는 직접 인스턴스화할 수 없다.
- 추상 메서드: 추상 클래스는 본체가 없는 추상 메서드를 포함할 수 있다. 이 메서드는 파생 클래스에서 구현해야 한다.
- 일반 메서드: 추상 클래스는 일반 메서드도 포함할 수 있다.
- 필드 및 속성: 필드와 속성도 가질 수 있다.
- 생성자: 생성자를 가질 수 있으며, 파생 클래스의 생성자에서 호출할 수 있다.
추상 클래스 vs 인터페이스
- 추상 클래스는 상태(필드, 속성)를 가질 수 있으며, 일부 메서드의 기본 구현을 제공할 수 있다..
- 파생 클래스는 이 상태와 구현을 상속받는다.
- 인터페이스는 행동(메서드, 이벤트, 인덱서)을 정의하지만 상태를 가질 수 없다.
- 구현은 완전히 파생 클래스에 의해 제공된다.
- 추상 클래스와 인터페이스는 설계 상 서로 다른 목적을 가지고 있으며, 이를 혼합하여
사용함으로써 더욱 유연하고 강력한 디자인을 만들 수 있다.
다른 경우도 작성해보자.
![]() |
![]() |
Shape 클래스를 상속받는 Circle 과 Rectangle 클래스를 선언, 추상 메서드를 구현한다.
'개인 공부 > C#' 카테고리의 다른 글
스택, 큐 (1) | 2024.07.26 |
---|---|
델리게이트(delegate)와 이벤트 (event) (1) | 2024.07.26 |
튜플 (0) | 2024.07.25 |
유니티 리플렉션 (Reflection) (0) | 2024.07.19 |
LINQ (Language Integrated Query) (0) | 2024.07.12 |