반응형
아래 글은 C# 인터페이스 관련 개념 정리 및 작성자 공부를 위해 작성되었습니다.
📃 참고자료
- C# 교과서(길벗 출판사) - 45단원 인터페이스(Interface) 600 ~ 613페이지
- 유튜브채널 VisualAcademy [C# 교과서 마스터하기 45. 인터페이스(Interface)]
https://www.youtube.com/watch?v=N4u2yQji4ec
인터페이스(Interface)란?
- 클래스에서 반드시 구현해야 하는 관련 기능에 대한 정의가 포함된 개념
인터페이스의 특징
- 인터페이스 멤버를 구현하지 않으면 에러 발생(강제성)
-> 기본 모양을 만들어 줘야함 - 가내 수공업이 아닌 공장과 같은 곳에서는 설계도가 반드시 필요
-> 설계 과정에서 인터페이스 활용 - 데이터베이스 설계에서도 인터페이스 활용
- 단순한 환경이 아닌 복잡한 상황에서 변경 가능한 환경에 대한 대비를 위한 것
- 설계의 최고 상위개념이 인터페이스이다
- 중구난방으로 개발하지 않도록 하게 해준다
- 다형성을 구현 할 수 있다.
- 참조타입이고 new() 인스턴스 생설할 수 없다.
- 상속받은 클래스에서 반드시 재정의 해야 한다.
인터페이스를 통해 다중 상속 가능
- 원래는 클래스와 클래스끼리 단일 상속만 가능
- 다중 상속은 인터페이스를 통해 가능
예제코드 (C#교과서 612p 예제)
using System;
namespace InterfaceFriends
{
// [1] 인터페이스: 설계 // Run() 이라는 단어 설계(명시)
public interface IStandard { void Run(); }
// [2] 추상 클래스: 설계 + 구현
public abstract class KS
{
public abstract void Back();
public void Left() => Console.WriteLine("좌회전");
}
// [3] 분할 클래스
public partial class MyCar : KS
{
public override void Back() => Console.WriteLine("후진");
}
public partial class MyCar : KS
{
public void Right() => Console.WriteLine("우회전");
}
// [4] 봉인(최종) 클래스
public sealed class Car : MyCar, IStandard
{
public void Run() => Console.WriteLine("전진");
}
// [5] 아래 코드는 에러(봉인 클래스는 상속 받을 수 없음)
// public class SelfCar : Car { }
class InterfaceFriends
{
static void Main()
{
Car cla = new Car();
cla.Run(); cla.Left(); cla.Right(); cla.Back();
}
}
}
출처
* 닷넷코리아
반응형
'프로그래밍언어 & 프레임워크 > C#' 카테고리의 다른 글
C# 대리자(Delegate) (0) | 2021.05.20 |
---|---|
C# 속성(Property) (0) | 2021.05.20 |
C# 예외처리하기(Exception) (0) | 2021.05.19 |
WPF UI 코딩 배우기1 (0) | 2021.04.25 |
셀레니움(Selenium)을 활용한 스마트스토어 자동 로그인[C#] (0) | 2020.11.02 |