728x90
안녕하세요!
이번 글에서는 C#에서의 인터페이스와 추상 클래스에 대해 알아보겠습니다.
인터페이스와 추상 클래스는 객체지향 프로그래밍에서 다형성과 유연성을 높이는 데에 활용됩니다.
인터페이스
- 인터페이스는 일련의 메서드, 속성, 이벤트 등의 구성 요소들을 정의하는데 사용되는 추상적인 개념입니다.
- 인터페이스는 클래스가 특정한 동작을 지원한다는 것을 보장하기 위해 사용됩니다.
- C#에서는 interface 키워드를 사용하여 인터페이스를 정의합니다.
interface IPlayable
{
void Play();
void Pause();
void Stop();
}
- 위의 예시에서 IPlayable 인터페이스는 Play(), Pause(), Stop() 세 개의 메서드를 정의하고 있습니다.
인터페이스 구현
- 인터페이스를 구현하는 클래스는 인터페이스에서 정의한 모든 구성 요소들을 구현해야 합니다.
- 클래스에서 인터페이스를 구현하려면 : 인터페이스명을 클래스 선언에 추가하고, 인터페이스에서 정의한 메서드들을 모두 구현해야 합니다.
class MediaPlayer : IPlayable
{
public void Play()
{
// 재생 시작
}
public void Pause()
{
// 일시 정지
}
public void Stop()
{
// 재생 정지
}
}
- MediaPlayer 클래스는 IPlayable 인터페이스를 구현하고 있습니다.
- 따라서 Play(), Pause(), Stop() 메서드를 모두 구현하였습니다.
추상 클래스
- 추상 클래스는 하나 이상의 추상 메서드를 포함하는 클래스입니다.
- 추상 메서드는 구현이 없이 메서드의 시그니처만을 가지는 메서드입니다.
- 추상 클래스는 다른 클래스에서 상속받아 사용될 목적으로 만들어지며, 직접 객체를 생성할 수는 없습니다.
- C#에서는 abstract 키워드를 사용하여 추상 클래스를 정의합니다.
abstract class Shape
{
public abstract double CalculateArea();
}
- 위의 예시에서 Shape 추상 클래스는 CalculateArea()라는 추상 메서드를 정의하고 있습니다.
추상 클래스 상속과 구현
- 추상 클래스를 상속받는 클래스는 추상 메서드를 반드시 구현해야 합니다.
- 추상 클래스를 상속받은 클래스는 추상 메서드를 오버라이드하여 자체적인 구현을 제공해야 합니다.
class Circle : Shape
{
private double radius;
public Circle(double radius)
{
this.radius = radius;
}
public override double CalculateArea()
{
return Math.PI * radius * radius;
}
}
- Circle 클래스는 Shape 추상 클래스를 상속받고 있습니다.
- CalculateArea() 메서드를 오버라이드하여 원의 넓이를 계산하는 구체적인 구현을 제공하였습니다.
이번 포스트에서는 C#에서의 인터페이스와 추상 클래스에 대해 알아보았습니다.
인터페이스는 클래스가 특정한 동작을 지원하도록 정의되며, 인터페이스를 구현하는 클래스는 인터페이스에서 정의한 구성 요소들을 구현해야 합니다.
추상 클래스는 추상 메서드를 포함하는 클래스로, 다른 클래스에서 상속받아 사용될 목적으로 만들어집니다.
다음 포스트에서는 예외 처리에 대해 알아보도록 하겠습니다.
감사합니다!
728x90
'[C#] > 프로그래밍 기초' 카테고리의 다른 글
[C#] 프로그래밍 기초 : 파일 입출력 (16) | 2023.06.27 |
---|---|
[C#] 프로그래밍 기초 : 예외처리 (15) | 2023.06.27 |
[C#] 프로그래밍 기초 : 상속과 다형성 (23) | 2023.06.26 |
[C#] 프로그래밍 기초 : 클래스와 객체 (20) | 2023.06.25 |
[C#] 프로그래밍 기초 : 가비지 컬렉터 (22) | 2023.06.23 |