인터페이스
- 메소드의 목록만을 가지는 특별한 타입
지정자 interface 이름 : 기반인터페이스
{
      메소드
}
- 멤버들은 구현 코드를 가지지않으며 세미콜론으로 끝난다
- 본체가 없고 동작이 정의되어 있지 않기 때문에 직접 호출할수 없는 일종의 추상 메소드
- 메소드를 물려주는 역할
- 선언된 메소드의 수현을 강제한다, 상속받은 클래스들은 인터페이스에 포함된 모든 메소드를 구현해야 한다

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
using System;
 
namespace IUnit
{
    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 Program
    {
        static void Main(string[] args)
        {
            Marine M = new Marine();
            M.Attack(5,5);
            M.Move(5, 5);
            M.Die();
        }
    }
}



- 의무적으로 구현해야 하는 메소드의 목록을 인터페이스로 작성하여 파생 클래스들이 강제로 구현하도록 한다
- IUnit 인터페이스는 구현은 정의하지 않으며 단지 메소드의 목록만 제공한다

Posted by 코딩하는 야구쟁이
,