본문 바로가기
프로그래밍언어 & 프레임워크/C#

C# 인터페이스(Interface)

by 공부하는개미 2021. 5. 18.
반응형

 

 

아래 글은 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();
        }
    }
}

 

 

 

 


출처

 

* 닷넷코리아

https://www.dotnetkorea.com/

 

반응형