[C#] 자습서 9장 - 인터페이스

2023. 1. 27. 11:44·개발/C#

인터페이스

메서드의 목록만 가지는 타입. interface 키워드로 선언하며 대문자 I로 시작하는 것이 관례이다.

 

지정자 interface 이름 : 기반인터페이스 {

             // 메서드 목록                             

}                                                               

 

인터페이스의 멤버는 추상 메서드이기 때문에 객체를 생성할 수 없고 메서드를 물려주는 역할만 한다. 인터페이스로부터 상속받는 클래스는 인터페이스의 모든 메서드를 구현해야 한다. 인터페이스는 추상 클래스와 유사한데 추상 클래스는 일부 메서드만 추상인데 비해 인터페이스는 모든 메서드가 추상이라는 점이 다르다. 또 다른 차이점으로는 인터페이스는 다중 상속에도 사용할 수 있다는 점이 있다.

interface IUnit
    {
        void Move(int x, int y);
        void Attack(int x, int y);
        void Die();
    }

    class Marine : IUnit
    {
        public void Move(int x, int y) { Console.WriteLine("레츠 무브"); }
        public void Attack(int x, int y) { Console.WriteLine("두두두두"); }
        public void Die() { Console.WriteLine("으아악"); }
    }

    class SCV : IUnit
    {
        public void Move(int x, int y) { Console.WriteLine("예썰"); }
        public void Attack(int x, int y) { Console.WriteLine("찌직 찌직"); }
        public void Die() { Console.WriteLine("펑~"); }
    }

    internal class Program
    {
        static void Main(string[] args)
        {
            Marine M = new Marine();
            M.Move(5, 5);
            M.Attack(5, 5);
            M.Die();
        }
    }

IUnit 인터페이스는 이동, 공격, 사망 세 개의 동작을 메서드 목록으로 제공하며 구현은 정의하지 않는다. 구현 방식은 자식 클래스가 결정한다. Marine 클래스를 보면 IUnit을 상속받아 세 개의 동작을 구체적으로 기술 했으므로 정상적인 유닛으로 인정된다. SCV 또한 모두 구현했다. 인터페이스는 구현 방식까지 강제하지는 않아 유닛의 특성에 따라 고유하게 구현할 수 있다.

 

 

 

 

 

 

 

 

 

 

Reference

www.soen.kr

 

SoEn:소프트웨어 공학 연구소

 

www.soen.kr

 

'개발 > C#' 카테고리의 다른 글

[C#] 자습서 10장 - 델리게이트  (0) 2023.02.02
[C#] 자습서 8장 - 상속(2)  (0) 2023.01.17
[C#] 자습서 7장 - 상속(1)  (0) 2023.01.13
[C#] 자습서 6장 - 함수  (0) 2023.01.11
[C#] 자습서 5장 - 클래스  (0) 2023.01.10
'개발/C#' 카테고리의 다른 글
  • [C#] 자습서 10장 - 델리게이트
  • [C#] 자습서 8장 - 상속(2)
  • [C#] 자습서 7장 - 상속(1)
  • [C#] 자습서 6장 - 함수
Majangnan
Majangnan
  • Majangnan
    개발 모코코
    Majangnan
  • 전체
    오늘
    어제
    • 분류 전체보기 (59) N
      • 개발 (58) N
        • C# (10)
        • SQL (3)
        • Unity (8)
        • Unreal (10)
        • C++ (2)
        • Server (1)
        • DX11 (8)
        • 알고리즘 (15) N
  • 블로그 메뉴

    • 홈
    • 방명록
    • 깃허브
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    UnReal
    코딩테스트
    blueprint
    MAC
    3dlight
    언리얼
    블루프린트
    Mecanim
    DirectX11
    C#
    프로그래머스
    dx3d
    Unity
    sql
    알고리즘
    슈팅게임
    DX11
    상속
    c++
    백준
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Majangnan
[C#] 자습서 9장 - 인터페이스
상단으로

티스토리툴바